安装SDK工具包
更新时间:2020-04-21
运行环境
PHP SDK包要求运行环境至少为PHP 5.3.2 版本。
安装步骤
- 在官方网站下载VCR PHP SDK工具包(ZIP包)。
-
解压ZIP包之后有如下文件:
Plain Text1BaiduBce.phar //PHP SDK 2SampleConf.php //参考配置文件,具体内容见下文
-
在脚本文件中添加以下代码,即可以使用 SDK 包:
PHP1include ‘BaiduBce.phar’; 2require ‘YourConf.php’;
关于配置文件的引用请参考下文中的[配置VcrClient](VCR/PHP SDK/安装SDK工具包.md#配置VcrClient)。
SDK目录结构
Plain Text1 BaiduBce.phar 2 ├──src 3 │ └── BaiduBce 4 │ ├── Auth //BCE签名相关 5 │ ├── Exception //BCE客户端的异常 6 │ ├── Http //BCEHttp通信相关 7 │ ├── Log //BCE日志 8 │ ├── Services 9 │ │ └── Vcr //VCR主目录,此目录必须保留 10 │ │ └── VcrClient.php //VCR操作类,所有操作可以通过VcrClient类可以完成 11 │ └── Util //BCE公用工具 12 └──vendor //第三方库
VcrClient
配置VcrClient
VcrClient是 VCR 服务的PHP客户端,为开发者与VCR服务进行交互提供了一系列的方法。
在新建VcrClient前,需要先创建配置文件对VcrClient进行配置,以下将此配置文件命名为YourConf.php
,具体配置信息如下:
PHP
1// 报告所有 PHP 错误
2error_reporting(-1);
3
4define('__VCR_CLIENT_ROOT', dirname(__DIR__));
5
6// 设置VcrClient的Access Key ID、Secret Access Key和ENDPOINT
7$my_credentials = array(
8 'ak' => '<your-access-key-id>',
9 'sk' => '<your-secret-access-key>',
10);
11$g_vcr_configs = array(
12 'credentials' => $my_credentials,
13 'endpoint' => 'http://vcr.bj.baidubce.com',
14);
15
16// 设置log的格式和级别
17$__handler = new \Monolog\Handler\StreamHandler(STDERR, \Monolog\Logger::DEBUG);
18$__handler->setFormatter(
19 new \Monolog\Formatter\LineFormatter(null, null, false, true)
20);
21\BaiduBce\Log\LogFactory::setInstance(
22 new \BaiduBce\Log\MonoLogFactory(array($__handler))
23);
24\BaiduBce\Log\LogFactory::setLogLevel(\Psr\Log\LogLevel::DEBUG);
注意:
- 在上面的代码中,变量AK与SK是系统分配给用户的,用于标识用户,为访问VCR做签名验证。其中AK对应控制台中的“Access Key ID”,SK对应控制台中的“Access Key Secret”,获取方式请参考如何获取AK/SK。
- ENDPOINT参数只能用指定的包含Region的域名来进行定义,VCR为全局服务,服务域名是
vcr.bj.baidubce.com
。
创建VcrClient
在完成上述配置之后,参考如下代码新建一个VcrClient。
PHP
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\Vcr\VcrClient;
10
11//调用配置文件中的参数
12global $g_vcr_configs;
13//新建VcrClient
14$vcrClient = new VcrClient($g_vcr_configs);
设置自定义参数
PHP SDK在\BaiduBce\Bce.php
中默认设置了一些基本参数,若用户想要对参数的值进行修改,可以参考此文件来创建自身的参数配置函数,并在构造VcrClient的时候传入,传入代码参考如下:
PHP
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 //利用自定义配置创建VcrClient
17 $customizedClient = new VcrClient($customizedConfig);
18
19 //通过自定义配置调用方法
20 $options = array(VcrOptions::config=>$customizedConfig);
21 $this->client->listPresets($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 |
接收缓冲区大小 | 10 *1024 * 1024 |