删除文件
更新时间:2022-10-08
删除文件
删除单个文件
可参考如下代码删除了一个Object:
Cpp
1int deleteObject(Client& client,const std::string bucketName, const std::string objectKey) {
2
3 // 删除Object
4 return client.delete_object(bucketName, objectKey); //指定要删除的Object所在Bucket名称和该Object名称
5}
删除多个文件
删除多个文件deleteMultiObject
使用并发接口,提高请求数的吞吐,代码如下:
C++
1int deleteMultiObject(Client& client, const& std::string bucketName, const std::vector<std::string>& objects) {
2 //批量删除object
3 std::vector<BceRequestContext> ctx(objects.size());
4 int i = 0;
5 for (const std::string& objectKey : objects) {
6 //构造上下文信息
7 ctx[i].request = new DeleteObjectRequest(bucketName, objectKey);
8 ctx[i].response = new DeleteObjectResponse;
9 ctx[i].is_own = true;//自动析构request和response
10 ++i;
11 }
12 //并发请求
13 int ret = client.send_request((int)ctx.size(), &ctx.front());
14 if (ret != 0) return ret;
15 //处理response
16 for (size_t i = 0; i < ctx.size(); ++i) {
17 DeleteObjectRequest* request = (DeleteObjectRequest*)ctx[i].request;
18 DeleteObjectResponse* response = (DeleteObjectResponse*)ctx[i].response;
19 if (response->is_fail()) {//有请求删除失败,处理这种情况
20 std::cout << "delete objectKey=" << request->object_name() << " failed"
21 << " reason: " << response->error().message();
22 ret = RET_SERVICE_ERROR;
23 }
24 }
25 return ret;
26}