安装MCT PHP SDK

安装SDK包

  1. 官方网站下载PHP SDK压缩包。

  2. 解压安装包并浏览SDK目录:

    BaiduBce.phar
    ├──src
    │   └── BaiduBce
    │       ├── Auth                //BCE签名相关
    │       ├── Exception           //BCE客户端的异常
    │       ├── Http                //BCE的Http通信相关
    │       ├── Log                 //BCE日志
    │       ├── Services
    │       │   └── Media                   //Media主目录,此目录必须保留
    │       │       └── MediaClient.php     //Media操作类,所有操作可以通过MediaClient类可以完成
    │       └── Util                //BCE公用工具
    └──vendor                       //第三方库
    
  3. 在脚本文件中添加以下代码并保存:

    include 'BaiduBce.phar';
    require 'YourConf.php';
    

有关配置文件的引用,请参考配置MediaClient

安装MediaClient

配置MediaClient

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

在新建MediaClient之前,需要先创建配置文件对MediaClient进行配置,以下将此配置文件命名为YourConf.php,具体配置信息如下所示:

// 报告所有 PHP 错误
error_reporting(-1);

define('__MEDIA_CLIENT_ROOT', dirname(__DIR__));

// 设置MediaClient的Access Key ID、Secret Access Key和ENDPOINT
$MEDIA_TEST_CONFIG =
    array(
        'credentials' => array(
            'ak' => 'your-access-key-id',
            'sk' => 'your-secret-access-key',
        ),
        'endpoint' => 'http://media.bj.baidubce.com',
    );

// 设置log的格式和级别
$__handler = new \Monolog\Handler\StreamHandler(STDERR, \Monolog\Logger::DEBUG);
$__handler->setFormatter(
    new \Monolog\Formatter\LineFormatter(null, null, false, true)
);
\BaiduBce\Log\LogFactory::setInstance(
    new \BaiduBce\Log\MonoLogFactory(array($__handler))
);
\BaiduBce\Log\LogFactory::setLogLevel(\Psr\Log\LogLevel::DEBUG);

注意:

1.在上面的代码中,变量AK与SK是系统分配给用户的,用于标识用户,为访问Media做签名验证。其中AK对应控制台中的“Access Key ID”,SK对应控制台中的“Access Key Secret”,获取方式请参考《操作指南 管理ACCESSKEY》。

2.ENDPOINT参数只能用指定的包含Region的域名来进行定义,目前Media只提供北京一个Region,因此ENDPOINT只支持http://media.bj.baidubce.com这一个域名,随着Region的增加将会开放其他可以支持的域名。

新建MediaClient

在完成上述配置之后,参考如下代码新建一个MediaClient。

//使用PHP SDK,并且使用自定义配置文件
include 'BaiduBce.phar';
require 'YourConf.php';

use BaiduBce\Services\Media\MediaClient;

//调用配置文件中的参数
global $MEDIA_TEST_CONFIG;
//新建MediaClient
$client = new MediaClient($MEDIA_TEST_CONFIG);

参数说明

PHP SDK在\BaiduBce\Bce.php中默认设置了一些基本参数,若用户想要对参数的值进行修改,可以参考此文件创建自身的参数配置函数,并在构造MediaClient的时候传入,传入代码参考如下:

public function CustomizedConfig() {
        $customizedConfig = array(
            BceClientConfigOptions::PROTOCOL => 'http',
            BceClientConfigOptions::REGION => 'bj',
            BceClientConfigOptions::CONNECTION_TIMEOUT_IN_MILLIS => 120 * 1000,
            BceClientConfigOptions::SOCKET_TIMEOUT_IN_MILLIS => 300 * 1000, 
            BceClientConfigOptions::SEND_BUF_SIZE => 5 * 1024 * 1024,
            BceClientConfigOptions::RECV_BUF_SIZE => 5 * 1024 * 1024,
            BceClientConfigOptions::CREDENTIALS => array(
                'ak' => 'your-access-key-id',
                'sk' => 'your-secret-access-key',
            ),
            'endpoint' => 'your-endpoint',
        );

        //利用自定义配置创建MediaClient
        $customizedClient = new MediaClient($customizedConfig);

        //通过自定义配置调用方法
        $options = array('config'=>$customizedConfig);
        $this->client->listPipelines($options);
    }

参数说明如下:

参数 说明 默认值
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

相关说明

MediaClient将可选的参数封装到$options中,每一个方法具有的可选参数详见具体的接口使用方法介绍,现以createPipeline方法为例,参考如下代码实现设置可选参数:

//利用options在通过创建Pipeline传入指定可选参数
$options = array(
    'description' => 'This is a test pipeline',
    'pipelineConfig' => array(
        'capacity' => 15,
    ),
);
$client->createPipeline($pipelineName, $sourceBucket, $targetBucket, $options);

注意:不要把null传入$options中,否则调用时会抛出异常。