在对象存储系统中,存储空间(Bucket)是对象(object)的组织管理单位,对象(object)是存储空间的逻辑存储单元。本文介绍如何创建和删除一个存储空间。
目前SDK只支持在默认项目下创建和删除存储空间,如有其它需求,可到Github上提交issue;
创建存储空间
本SDK提供ufile_bucket_create
方法用于创建一个存储空间,参数说明如下,完整代码详见 Github 。
ufile_bucket_create
调用的 US3 API 为CreateBucket
, 具体参见CreateBucket API 文档。
方法原型
1
struct ufile_error ufile_bucket_create(const char *bucket_name, const char* region, const char* bucket_type)
参数说明
bucket_name
: 待创建Bucket的名称,具有全局唯一性。命名规范参见Bucket创建region
: 地域简称。 参见 地域和可用区列表bucket_type
: Bucket访问类型,public或private;
示例
执行该示例请先配置
UFILE_*
相关环境变量并赋予bucket_name
、region
和bucket_type
有效值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "../lib/api.h"
#include <stdio.h>
#include <stdlib.h>
const char* bucket_name = "";
const char* region = "";
const char* bucket_type = "";
int main(int argc, char *argv[]){
struct ufile_config cfg;
cfg.public_key = getenv("UFILE_PUBLIC_KEY");
cfg.private_key = getenv("UFILE_PRIVATE_KEY");
cfg.bucket_host = getenv("UFILE_BUCKET_HOST");
cfg.file_host = getenv("UFILE_FILE_HOST");
// 初始化SDK
struct ufile_error error;
error = ufile_sdk_initialize(cfg, 0);
if(UFILE_HAS_ERROR(error.code)){
ufile_sdk_cleanup();
printf("初始化 sdk 失败,错误信息为:%s\n", error.message);
return 1;
}
// 创建一个存储空间
error = ufile_bucket_create(bucket_name, region, bucket_type);
if(UFILE_HAS_ERROR(error.code)){
printf("创建 bucket 失败,错误信息为:%s\n", error.message);
}
// 释放初始化SDK时分配的内存
ufile_sdk_cleanup();
return 0;
}
删除存储空间
本SDK提供ufile_bucket_delete
删除存储空间,参数说明如下,完整代码详见 Github 。
ufile_bucket_delete
调用的 US3 API 为DeleteBucket
, 具体参见DeleteBucket API 文档。
方法原型
1
struct ufile_error ufile_bucket_delete(const char *bucket_name)
参数说明
bucket_name
: 待删除Bucket的名称。
示例
执行该示例请先配置
UFILE_*
相关环境变量并赋予bucket_name
有效值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "../lib/api.h"
#include <stdio.h>
#include <stdlib.h>
const char* bucket_name = "";
int main(int argc, char *argv[]){
struct ufile_config cfg;
cfg.public_key = getenv("UFILE_PUBLIC_KEY");
cfg.private_key = getenv("UFILE_PRIVATE_KEY");
cfg.bucket_host = "api.ucloud.cn";
cfg.file_host = "cn-bj.ufileos.com";
// 初始化SDK
struct ufile_error error;
error = ufile_sdk_initialize(cfg, 0);
if(UFILE_HAS_ERROR(error.code)){
ufile_sdk_cleanup();
printf("初始化 sdk 失败,错误信息为:%s\n", error.message);
return 1;
}
// 删除存储空间
error = ufile_bucket_delete(bucket_name);
if (UFILE_HAS_ERROR(error.code)) {
printf("删除 bucket 失败,错误信息为:%s\n", error.message);
}
// 释放初始化SDK时分配的内存
ufile_sdk_cleanup();
return 0;
}