初始化
确认Endpoint
在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于BLB访问域名的部分,理解Endpoint相关的概念。 百度云目前开放了多区域支持,请参考区域选择说明。
目前支持“北京”、“广州”、“苏州”、“香港”、“武汉”、“保定”、“上海”、“新加坡”等区域。
服务域名的对应信息为:
| 访问区域 | 对应Endpoint | 
|---|---|
| bj | blb.bj.baidubce.com | 
| gz | blb.gz.baidubce.com | 
| su | blb.su.baidubce.com | 
| hkg | blb.hkg.baidubce.com | 
| fwh | blb.fwh.baidubce.com | 
| bd | blb.bd.baidubce.com | 
| fsh | blb.fsh.baidubce.com | 
| sin | blb.sin.baidubce.com | 
新建BlbClient
BlbClient是BLB服务的客户端,为开发者与BLB服务进行交互提供了一系列的方法。
在新建BlbClient之前,需要先创建配置文件对BlbClient进行配置,以下将此配置文件命名为YourConf.php,具体配置信息如下所示:
1// 报告所有 PHP 错误
2error_reporting(-1);
3
4define('__BLB_CLIENT_ROOT', dirname(__DIR__));
5
6// 设置BlbClient的Access Key ID、Secret Access Key和ENDPOINT
7$BLB_TEST_CONFIG =
8    array(
9        'credentials' => array(
10            'accessKeyId' => 'your ak',
11            'secretAccessKey' => 'your sk',
12            'sessionToken' => 'your session token'
13        ),
14        'endpoint' => 'http://blb.bj.baidubce.com',
15        'stsEndpoint' => 'http://sts.bj.baidubce.com',
16    );
17
18// 设置log的格式和级别
19$__handler = new \Monolog\Handler\StreamHandler(STDERR, \Monolog\Logger::DEBUG);
20$__handler->setFormatter(
21    new \Monolog\Formatter\LineFormatter(null, null, false, true)
22);
23\BaiduBce\Log\LogFactory::setInstance(
24    new \BaiduBce\Log\MonoLogFactory(array($__handler))
25);
26\BaiduBce\Log\LogFactory::setLogLevel(\Psr\Log\LogLevel::DEBUG);注意:
1.在上面代码中,ACCESS_KEY_ID对应控制台中的“Access Key ID”,SECRET_ACCESS_KEY对应控制台中的“Access Key Secret”,获取方式请参考《操作指南 获取ACCESSKEY》。
2.如果用户需要自己指定域名,可以通过传入ENDPOINT参数来指定,ENDPOINT参数需要用指定区域的域名来进行定义,如服务所在区域为北京,则为http://blb.bj.baidubce.com。
3.如果不使用STS验证方式,则stsEndpoint和sessionToken可以为空或者删除。
使用AK/SK新建BlbClient
通过AK/SK方式访问BLB,用户可以参考如下代码新建一个BlbClient:
1//使用PHP SDK,并且使用自定义配置文件
2include 'BaiduBce.phar';
3require 'YourConf.php';
4
5use BaiduBce\BceClientConfigOptions;
6use BaiduBce\Util\Time;
7use BaiduBce\Util\MimeTypes;
8use BaiduBce\Http\HttpHeaders;
9use BaiduBce\Services\Blb\BlbClient;
10
11//调用配置文件中的参数
12global $BLB_TEST_CONFIG;
13//新建BlbClient
14$client = new BlbClient($BLB_TEST_CONFIG);使用STS创建BlbClient
申请STS token BLB可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度智能云提供的临时授权服务。通过STS,您可以为第三方用户颁发一个自定义时效和权限的访问凭证。第三方用户可以使用该访问凭证直接调用百度智能云的API或SDK访问百度智能云资源。
通过STS方式访问BLB,用户需要先通过STS的client申请一个认证字符串,申请方式可参见百度智能云STS使用介绍。
用STS token新建BLBClient 申请好STS后,可将STStoken配置到BlbClient中,用户可以参考如下代码新建一个BlbClient: 1.首先进行STS的endpoint配置。STS的配置示例如下:
1$BLB_TEST_CONFIG =
2    array(
3        'credentials' => array(
4            'accessKeyId' => 'your ak',
5            'secretAccessKey' => 'your sk',
6        ),
7	'stsEndpoint' => 'http://sts.bj.baidubce.com',
8    );2.StsClient的示例代码如下:
1//新建StsClient
2$client = new StsClient($BLB_TEST_CONFIG);
3$request =
4    array(
5        'acl' => $aclArray, //用户定义的acl
6        'durationSeconds' => 43200, //STS凭证有效时间
7    );
8$response = $client->getSessionToken($request);
9$accessKeyID= $response->accessKeyId;
10$secretAccessKey= $response->secretAccessKey;
11$sessionToken = $response->sessionToken;3.将获取到的accessKeyID/secretAccessKey/sessionToken写入到配置文件YourConf.php中并新建BlbClient。
1$BLB_TEST_CONFIG =
2    array(
3        'credentials' => array(
4            'accessKeyId' => 'your ak',
5            'secretAccessKey' => 'your sk',
6            'sessionToken' => 'your session token'
7        ),
8        'endpoint' => 'http://blb.bj.baidubce.com',
9    );
10
11    //新建BlbClient
12    $client = new BlbClient($BLB_TEST_CONFIG);注意: 目前使用STS配置client时,无论对应BLB服务的endpoint在哪里,endpoint都需配置为http://sts.bj.baidubce.com。
配置BlbClient
PHP SDK在\BaiduBce\Bce.php中默认设置了一些基本参数,若用户想要对参数的值进行修改,可以参考此文件来创建自身的参数配置函数,并在构造BlbClient的时候传入,传入代码参考如下:
1public function CustomizedConfig() {
2        $customizedConfig = array(
3            BceClientConfigOptions::PROTOCOL => 'http',
4            BceClientConfigOptions::REGION => 'bj',
5            BceClientConfigOptions::CONNECTION_TIMEOUT_IN_MILLIS => 120 * 1000,
6            BceClientConfigOptions::SOCKET_TIMEOUT_IN_MILLIS => 300 * 1000,
7            BceClientConfigOptions::SEND_BUF_SIZE => 5 * 1024 * 1024,
8            BceClientConfigOptions::RECV_BUF_SIZE => 5 * 1024 * 1024,
9            BceClientConfigOptions::CREDENTIALS => array(
10                'ak' => 'your-access-key-id',
11                'sk' => 'your-secret-access-key',
12            ),
13            'endpoint' => 'your-endpoint',
14        );
15
16        //利用自定义配置创建BLBClient
17        $customizedClient = new BlbClient($customizedConfig);
18
19        //通过自定义配置调用方法
20        $options = array(BlbOptions::CONFIG=>$customizedConfig);
21        $this->client->listBlbs($options);
22    }参数说明
| 参数 | 说明 | 默认值 | 
|---|---|---|
| PROTOCOL | 协议 | http | 
| REGION | 区域 | bj | 
| CONNECTION_TIMEOUT_IN_MILLIS | 请求超时时间(单位:毫秒) | 50 * 1000 | 
| SOCKET_TIMEOUT_IN_MILLIS | 通过打开的连接传输数据的超时时间(单位:毫秒) | 0(指的是无限等待,若设置非0数值需要对文件大小和网速进行评估,否则上传大文件时会产生超时) | 
| SEND_BUF_SIZE | 发送缓冲区大小 | 1024 * 1024 | 
| RECV_BUF_SIZE | 协议 | http | 
| PROTOCOL | 接收缓冲区大小 | 10 1024 1024 | 
