简介
本文档提供关于删除存储桶的 API 概览以及 SDK 示例代码。
注意事项
在您使用存储桶相关操作之前,需要先具有相关权限:
删除存储桶前,请确保存储桶内的数据和未完成上传的分块数据已全部清空,否则会无法删除存储桶。
删除存储桶后,数据无法恢复,请在删除前确认数据已不再使用。如果需要继续使用存储桶中的数据,请参见 云上数据备份 提前做好备份。
删除存储桶后,需要等待数小时(通常为4到8个小时)才能重名创建。在此期间,该名称对所有人开放,可用于新建存储桶。若希望继续使用原存储桶名称,建议清空内容而非直接删除,以便保留存储桶。
相关示例
功能名称 | 描述 | 示例代码 |
删除存储桶 | 删除指定账号下的空存储桶 |
前期准备
使用永久密钥创建 CosAPI
调用 COS 的接口之前,必须先创建一个 CosAPI 的实例,用于后续调用请求。
qcloud_cos::CosAPI InitCosAPI() {uint64_t appid = 12500000000;std::string region = "ap-guangzhou";// bucket 的地域,请参见 https://cloud.tencent.com/document/product/436/62std::string secret_id = "************************************"; //用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140std::string secret_key = "************************************"; //用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140qcloud_cos::CosConfig config(appid, secret_id, secret_key, region);qcloud_cos::CosAPI cos_tmp(config);return cos_tmp;}
使用临时密钥创建 CosAPI
如果要使用临时密钥请求 COS,则需要用临时密钥创建 CosAPI 实例。
qcloud_cos::CosAPI InitCosAPI() {// 需要已经获取到临时密钥的结果:tmp_secret_id、tmp_secret_key、// 临时密钥的生成参见 https://cloud.tencent.com/document/product/436/14048#cos-sts-sdkuint64_t appid = 12500000000;std::string region = "ap-guangzhou";std::string tmp_secret_id = "************************************";std::string tmp_secret_key = "************************************";std::string tmp_token = "token";qcloud_cos::CosConfig config(appid, tmp_secret_id, tmp_secret_key, region);config.SetTmpToken(tmp_token);qcloud_cos::CosAPI cos_tmp(config);return cos_tmp;}
使用案例:删除存储桶
删除指定账号下的空存储桶。
方法原型
CosResult CosAPI::DeleteBucket(const DeleteBucketReq& req, DeleteBucketResp* resp)
请求示例
void DeleteBucket(qcloud_cos::CosAPI& cos) {qcloud_cos::DeleteBucketReq req(bucket_name);qcloud_cos::DeleteBucketResp resp;qcloud_cos::CosResult result = cos.DeleteBucket(req, &resp);std::cout << "===================DeleteBucketResponse====================="<< std::endl;PrintResult(result, resp);std::cout << "========================================================="<< std::endl;}
参数说明
参数名称 | 描述 | 类型 |
req | 删除存储桶请求。 | DeleteBucketReq |
resp | 删除存储桶响应。 | DeleteBucketReq |
DeleteBucketReq 成员或函数说明:
成员或函数 | 描述 | 参数类型 |
bucket_name | 存储桶名,可通过构造函数或 set 方法进行设置。 | string |
DeleteBucketReq 成员或函数说明:
成员或函数 | 描述 | 参数类型 |
GetXCosRequestId | 获取请求 ID。 | string |
返回说明
CosResult 主要成员函数说明如下:
成员函数 | 描述 | 返回类型 |
IsSucc | 判断是否成功,成功返回 true,失败返回 false。 | bool |
GetHttpStatus | 获取 HTTP 状态码。 | int |
GetErrorCode | 获取请求失败时获取错误码。 | string |
GetErrorMsg | 获取请求失败时获取错误信息。 | string |
GetXCosRequestId | 获取请求 ID。 | string |
对 CosResult 的使用样例如下,用户可根据信息选择使用:
void PrintResult(const qcloud_cos::CosResult& result, const qcloud_cos::BaseResp& resp) {if (result.IsSucc()) {std::cout << "Request Succ." << std::endl;std::cout << resp.DebugString() << std::endl;} else {std::cout << "ErrorMsg=" << result.GetErrorMsg() << std::endl;std::cout << "HttpStatus=" << result.GetHttpStatus() << std::endl;std::cout << "ErrorCode=" << result.GetErrorCode() << std::endl;std::cout << "ErrorMsg=" << result.GetErrorMsg() << std::endl;std::cout << "ResourceAddr=" << result.GetResourceAddr() << std::endl;std::cout << "XCosRequestId=" << result.GetXCosRequestId() << std::endl;std::cout << "XCosTraceId=" << result.GetXCosTraceId() << std::endl;}}
API 操作