列举并行文件系统(C SDK)
开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。
您可以通过list_bucket_obs获取并行文件系统列表。该接口可以列举当前账户下所有的并行文件系统,返回结果按照并行文件系统名称的字典顺序排列。
接口约束
- 您必须拥有obs:bucket:ListAllMyBuckets权限,才能获取桶列表。建议使用IAM进行授权,配置方式详见使用IAM自定义策略。
- OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。
方法定义
1 2 | void list_bucket_obs(const obs_options *options, obs_list_service_obs_handler *handler, void *callback_data); |
请求参数描述
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
| options | const obs_options * | 必选 | 请求桶的上下文,配置option(C SDK),通过obs_options设置AK、SK、endpoint、bucket、超时时间、临时鉴权 |
| handler | obs_list_service_obs_handler * | 必选 | 回调结构体,结构体内所有成员都是回调函数的指针,用于设置处理接口响应数据的回调函数。您可以通过设置回调函数,把服务端的响应数据复制到您的自定义回调数据callback_data中。 |
| callback_data | void * | 可选 | 用户自定义回调数据。 |
代码示例
以下示例展示如何新建一个并行文件系统:
static void test_list_bucket_obs()
{
// 创建并初始化option
obs_options option;
init_obs_options(&option);
option.bucket_options.host_name = "<your-endpoint>";
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY。
// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
option.bucket_options.access_key = getenv("ACCESS_KEY_ID");
option.bucket_options.secret_access_key = getenv("SECRET_ACCESS_KEY");
list_service_data data;
memset_s(&data, sizeof(list_service_data), 0, sizeof(list_service_data));
// 自定义响应回调函数
obs_list_service_obs_handler listHandler =
{
{NULL,
&list_bucket_complete_callback },
&listServiceObsCallback
};
// 列举并行文件系统
list_bucket_obs(&option,&listHandler,&data);
if (data.ret_status == OBS_STATUS_OK)
{
printf("list bucket successfully. \n");
}
else
{
printf("list bucket failed(%s).\n", obs_get_status_name(data.ret_status));
}
} 相关链接
- 关于列举并行文件系统的API说明,请参见API文档。
- 更多列举并行文件系统返回的错误码含义、问题原因及处理措施可参考OBS错误码。