初始化

确认Endpoint

在确认您使用SDK时配置的Endpoint时,可先阅读开发者指南中关于BOS访问域名的部分,理解Endpoint相关的概念。

百度智能云目前开放了多区域支持,请参考区域选择说明

目前支持“华北-北京”、“华南-广州”和“华东-苏州”三个区域。北京区域:http://bj.bcebos.com,广州区域:http://gz.bcebos.com,苏州区域:http://su.bcebos.com
对应信息为:

访问区域 对应Endpoint
BJ bj.bcebos.com
GZ gz.bcebos.com
SU su.bcebos.com

获取密钥

要使用百度智能云BOS,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问BOS做签名验证。
可以通过如下步骤获得并了解您的AK/SK信息:

注册百度智能云账号

创建AK/SK

新建BosClient

BosClient是BOS服务的客户端,为开发者与BOS服务进行交互提供了一系列的方法。

使用AK/SK新建BosClient

通过AK/SK方式访问BOS,用户可以参考如下代码新建一个BosClient:

#include <bcesdk/bos/client.h>
using namespace bcesdk_ns;
int main() {
    std::string ACCESS_KEY_ID = <your-access-key-id>;                   // 用户的Access Key ID
    std::string SECRET_ACCESS_KEY = <your-secret-access-key>;           // 用户的Secret Access Key

    /* 初始化一个Client*/

    //设置日志
    FILE *logfp = fopen("sdk.log", "w");
    sdk_set_log_stream(logfp);
    sdk_set_log_level(SDK_LOG_DEBUG);
    //设置客户端
    Client client(ACCESS_KEY_ID, SECRET_ACCESS_KEY);
}

在上面代码中,ACCESS_KEY_ID对应控制台中的“Access Key ID”,SECRET_ACCESS_KEY对应控制台中的“Access Key Secret”,获取方式请参考《操作指南 管理ACCESSKEY》。

上面的方式使用默认域名作为BOS的服务地址,如果用户需要自己指定域名,可以通过传入ENDPOINT参数来指定。

std::string ACCESS_KEY_ID = <your-access-key-id>;                   // 用户的Access Key ID
std::string SECRET_ACCESS_KEY = <your-secret-access-key>;           // 用户的Secret Access Key
std::string ENDPOINT = <domain-name>;                               // 用户自己指定的域名


config.endpoint = ENDPOINT;
Client client(ACCESS_KEY_ID, SECRET_ACCESS_KEY, config);

注意:ENDPOINT参数只能用指定的包含区域的域名来进行定义,不指定时默认为北京区域http://bj.bcebos.com

配置HTTPS协议访问BOS

BOS支持HTTPS传输协议,您可以通过如下两种方式在BOS C++ SDK中使用HTTPS访问BOS服务:

在endpoint中指明https:

std::string endpoint = "https://bj.bcebos.com";
std::string ak = "ak";
std::string sk = "sk";
ClientOptions config;
config.endpoint = endpoint;
Client client(ak, sk, config);

配置BosClient

如果用户需要配置Client的一些细节的参数,可以在构造Client的时候传入ClientOptions对象。 ClientOptions是BOS服务的配置类,可以为客户端配置超时、重试次数等。

设置网络参数

用户可以用对ClientOptions基本网络参数进行设置:

ClientOptions config;

// 设置HTTP请求超时为120秒
config.timeout = 120;

// 设置额外重试次数
config.retry = 2;

// 设置并发请求数
config.max_parallel = 10;

参数说明

通过ClientOptions能指定的所有参数如下表所示:

参数 默认值 说明
endpoint http://bj.bcebos.com HTTP请求终端
retry 2 HTTP请求额外的重试次数
timeout 120 是秒为单位的超时,这个要根据请求类型慎重选取,比如下载一个大文件可能用到比较大的超时
user_agent cppsdk相关 可以指定请求发送的时候的UA
max_parallel 10 并发请求接口的默认并发数(也可以直接在调用接口时参数指定)
multi_part_size 10MB 功能性函数里封装三步上传或者并发下载的块大小
sign_expire_seconds 1200s 指定签名超时的时间