存储空间管理

在对象存储系统中,存储空间(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_nameregionbucket_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;
}