删除桶

Bucket是用于存储对象(Object)的容器,所有的对象都必须隶属于某个Bucket。本文介绍如何删除桶(Bucket)。

注意:待删除的bucket必须是空的,否则会报错。

接口:

void S3_delete_bucket(S3Protocol protocol, S3UriStyle uriStyle,
                      const char *accessKeyId, const char *secretAccessKey,
                      const char *securityToken, const char *hostName,
                      const char *bucketName, const char *authRegion,
                      S3RequestContext *requestContext,
                      int timeoutMs,
                      const S3ResponseHandler *handler, void *callbackData);

参数:

参数名 类型 说明
protocol S3Protocol 请求使用的协议
uriStyle S3UriStyle 请求使用的URI方式
accessKeyId const char * 用户的accessKey
secretAccessKey const char * 用户的secretKey
securityToken const char * 如果非NULL,则该安全令牌用于生成临时的凭证
hostName const char * 请求使用的主机名
bucketName const char * 要删除的bucket名
authRegion const char * 如果非NULL,则是用于授权签名的AWS区域
requestContext S3RequestContext * 请求参数,如果为NULL,则立即同步执行请求
timeoutMs int 如果非0,则是以毫秒为单位的请求超时时间
handler const S3ResponseHandler * 回调函数
callbackData void * 回调数据

代码示例:

#include <unistd.h>

void delete_bucket(const char *bucketName)
{

    S3ResponseHandler responseHandler =
        {
            &responsePropertiesCallback, &responseCompleteCallback};

    do
    {
        S3_delete_bucket(protocolG, uriStyleG, accessKeyG, secretKeyG,
                         0, hostname, bucketName, 0, 0, 0, &responseHandler, 0);
    } while (S3_status_is_retryable(statusG) && should_retry());

    if (statusG != S3StatusOK)
    {
        printError();
    }
}