删除桶
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();
}
}