初始化
更新时间:2024-04-24
确定Endpoint
在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于BOS访问域名的部分,理解Endpoint相关的概念。百度智能云目前开放了多区域支持,请参考区域选择说明。
region与endpoint参考如下链接
https://cloud.baidu.com/doc/BOS/s/akrqd2wcx
常见示例如下:
访问区域 | 对应Endpoint |
---|---|
BJ | bj.bcebos.com |
BD | bd.bcebos.com |
SU | su.bcebos.com |
GZ | gz.bcebos.com |
CD | cd.bcebos.com |
HKG | hkg.bcebos.com |
FWH | fwh.bcebos.com |
FSH | fsh.bcebos.com |
获取密钥
要使用百度智能云BOS,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问BOS做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:
使用BOS C SDK的一般流程
下面为您介绍使用 C SDK 的一般流程。
- 初始化 SDK。
- 设置请求选项参数。
- 设置 API 接口必需的参数。
- 调用 SDK API 发起请求并获得请求响应结果。
初始化
int main(int argc, char *argv[])
{
/* 程序入口处调用 bos_http_io_initialize 方法,这个方法内部会做一些全局资源的初始化,涉及网络,内存等部分 */
if (bos_http_io_initialize(NULL, 0) != BOSE_OK) {
exit(1);
}
/* 调用 BOS SDK 的接口上传或下载文件 */
/* ... 用户逻辑代码,这里省略 */
/* 程序结束前,调用 bos_http_io_deinitialize 方法释放之前分配的全局资源 */
bos_http_io_deinitialize();
return 0;
}
初始化请求选项
用户可以参考如下代码初始化请求选项:
bos_pool_t *pool;
bos_request_options_t *options;
bos_pool_create(&pool, NULL);
bos_string_t bucket;
bos_string_t object;
bos_string_t file;
bos_acl_e bos_acl = 3;
bos_table_t *resp_headers = NULL;
bos_table_t *headers = NULL;
options = bos_request_options_create(pool);
options->config = bos_config_create(options->pool);
bos_str_set(&options->config->endpoint, "bj.bcebos.com");
bos_str_set(&options->config->access_key_id, "xxxxxxxxxxx");
bos_str_set(&options->config->access_key_secret, "xxxxxxxxxxxxx");
bos_str_set(&options->config->sts_token, "<用户的StsToken>"); //临时密钥的 Token
bos_str_set(&bucket, TEST_BUCKET_NAME);
options->config->is_cname = 0;
在上面代码中,access_key_id
对应控制台中的“Access Key ID”,access_key_secret
对应控制台中的“Access Key Secret”,获取方式请参考《操作指南 管理ACCESSKEY》。
上面的方式使用默认域名作为BOS的服务地址,如果用户需要自己指定域名,可以通过传入ENDPOINT参数来指定。
注意:
ENDPOINT
参数只能用指定的包含区域的域名来进行定义,不指定时默认为北京区域http://bj.bcebos.com
。