全部产品
对象存储 OSS

管理Bucket

更新时间:2017-06-07 13:26:11   分享:   

Bucket是OSS上的存储空间,也是计费、权限控制、日志记录等高级功能的管理实体;存储空间名称在整个OSS服务中具有全局唯一性,且不能修改;存储在OSS上的每个文件必须都包含在某个存储空间中。

新建存储空间

通过oss_create_bucket接口,可以实现创建一个存储空间,用户需要指定存储空间的名字:

aos_pool_t *p;
oss_request_options_t *options;
oss_acl_e oss_acl = OSS_ACL_PRIVATE;
char *bucket_name = "<您的bucket名字>";
aos_string_t bucket;
aos_table_t *resp_headers;
aos_status_t *s;

aos_pool_create(&p, NULL);

/* 创建并初始化options */
options = oss_request_options_create(p);
init_options(options);

/* 初始化参数 */
aos_str_set(&bucket, bucket_name);

/* 创建存储空间 */
s = oss_create_bucket(options, &bucket, oss_acl, &resp_headers);
if (aos_status_is_ok(s)) {
    printf("create bucket succeeded\n");
} else {
    printf("create bucket failed\n");
}

aos_pool_destroy(p);

注:

  • Bucket的命名规范请查看OSS 基本概念
  • 由于存储空间的名字是全局唯一的,所以必须保证您的存储空间名字不与别人的重复

删除存储空间

通过oss_delete_bucket接口,可以实现删除一个存储空间,用户需要指定存储空间的名字:

aos_pool_t *p;
oss_request_options_t *options;
char *bucket_name = "<您的bucket名字>";
aos_string_t bucket;
aos_table_t *resp_headers;
aos_status_t *s;

aos_pool_create(&p, NULL);

/* 创建并初始化options */
options = oss_request_options_create(p);
init_options(options);

/* 初始化参数 */
aos_str_set(&bucket, bucket_name);

/* 删除存储空间 */
s = oss_delete_bucket (options, &bucket, &resp_headers);
if (aos_status_is_ok(s)) {
    printf("delete bucket succeeded\n");
} else {
    printf("delete bucket failed\n");
}

aos_pool_destroy(p);

注:

  • 如果该存储空间下还有文件存在,则需要先删除所有文件才能删除存储空间
  • 如果该存储空间下还有未完成的上传请求,则需要通过oss_list_multipart_uploadoss_abort_multipart_upload先取消那些请求才能删除存储空间。

存储空间访问权限

用户可以设置存储空间的访问权限,允许或者禁止匿名用户对其内容进行读写。

获取存储空间的访问权限(ACL)

通过oss_get_bucket_acl接口,可以实现查看存储空间的ACL:

aos_pool_t *p;
oss_request_options_t *options;
char *bucket_name = "<您的bucket名字>";
aos_string_t bucket;
aos_table_t *resp_headers;
aos_status_t *s;
char *oss_acl;

aos_pool_create(&p, NULL);

/* 创建并初始化options */
options = oss_request_options_create(p);
init_options(options);

/* 初始化参数 */
aos_str_set(&bucket, bucket_name);

/* 获取存储空间访问权限 */
s = oss_get_bucket_acl(options, &bucket,& oss_acl, &resp_headers);
if (aos_status_is_ok(s)) {
    printf("get bucket acl succeeded\n");
} else {
    printf("get bucket acl failed\n");
}

aos_pool_destroy(p);

设置存储空间的访问权限(ACL)

通过oss_create_bucket接口,可以实现设置存储空间的ACL:

aos_pool_t *p;
oss_request_options_t *options;
oss_acl_e oss_acl = OSS_ACL_PRIVATE;
char *bucket_name = "<您的bucket名字>";
aos_string_t bucket;
aos_table_t *resp_headers;
aos_status_t *s;

aos_pool_create(&p, NULL);

/* 创建并初始化options */
options = oss_request_options_create(p);
init_options(options);

/* 初始化参数 */
aos_str_set(&bucket, bucket_name);

/* 设置存储空间访问权限 */
s = oss_put_bucket_acl(options, &bucket, oss_acl, &resp_headers);
if (aos_status_is_ok(s)) {
    printf("put bucket acl succeeded\n");
} else {
    printf("put bucket acl failed\n");
}

aos_pool_destroy(p);

注:

  • 操作者必须是Bucket的拥有者,否则不允许设置该存储空间的访问权限。
  • 存储空间的访问权限oss_acl_e是一个枚举值,可选值包括:OSS_ACL_PRIVATE、OSS_ACL_PUBLIC_READ、OSS_ACL_PUBLIC_READ_WRITE
本文导读目录
本文导读目录
以上内容是否对您有帮助?