所有文档

          音视频处理 MCT

          MediaClient

          配置MediaClient

          MediaClient是Media服务的Python客户端,为调用者与Media服务进行交互提供了一系列的方法。

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

          #!/usr/bin/env python
          #coding=utf-8
          
          #导入Python标准日志模块
          import logging
          
          #从Python SDK导入Media配置管理模块以及安全认证模块
          from baidubce.bce_client_configuration import BceClientConfiguration
          from baidubce.auth.bce_credentials import BceCredentials
          
          #设置MediaClient的Host,Access Key ID和Secret Access Key
          media_host = "http://media.bj.baidubce.com"
          access_key_id = "your-access-key-id"
          secret_access_key = "your-secret-access-key"
          
          #设置日志文件的句柄和日志级别
          logger = logging.getLogger('baidubce.services.media.mediaclient')
          fh = logging.FileHandler("sample.log")
          fh.setLevel(logging.DEBUG)
          
          #设置日志文件输出的顺序、结构和内容
          formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
          fh.setFormatter(formatter)
          logger.setLevel(logging.DEBUG)
          logger.addHandler(fh)
          
          #创建BceClientConfiguration
          config = BceClientConfiguration(credentials=BceCredentials(access_key_id, secret_access_key), endpoint = media_host)

          注意:

          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。

          import conf
          import sys
          from baidubce import exception
          from baidubce.services import media
          from baidubce.services.media.media_client import MediaClient
          
          # create new MediaClient
          client = MediaClient(conf.config)
          reload(sys)
          sys.setdefaultencoding('utf-8')
          print client.list_pipelines()

          参数说明

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

          from baidubce.retry_policy import BackOffRetryPolicy
          from baidubce.bce_client_configuration import BceClientConfiguration
          from baidubce.auth.bce_credentials import BceCredentials
          from baidubce.protocol import HTTP
          from baidubce.region import BEIJING
          
          my_policy = BackOffRetryPolicy(max_error_retry = 3,
                  max_delay_in_millis=20 * 1000,
                  base_interval_in_millis=300)
          
          my_config = BceClientConfiguration(
                  credentials = BceCredentials('your-access-key-id', 'your-secret-access-key'),
                  endpoint = media_host,
                  protocol = baidubce.protocol.HTTP,
                  region = baidubce.region.BEIJING,
                  connection_timeout_in_mills = 50 * 1000,
                  send_buf_size = 1024 * 1024,
                  recv_buf_size = 10 * 1024 * 1024,
                  retry_policy = my_policy)
          
          
          # create MediaClient with my config
          my_client = MediaClient(my_config)
          
          pipelines = client.list_pipelines()
          for pipeline in pipelines.pipelines:
            print pipeline

          参数说明如下:

          参数 说明 默认值
          PROTOCOL 协议 baidubce.protocol.HTTP
          REGION 区域 baidubce.region.BEIJING(目前只支持北京地区)
          CONNECTION_TIMEOUT_IN_MILLIS 请求超时时间(单位:毫秒) 120 * 1000
          SOCKET_TIMEOUT_IN_MILLIS 通过打开的连接传输数据的超时时间(单位:毫秒) 300 * 1000(0指的是无限等待,若设置非0数值需要对文件大小和网速进行评估,否则上传大文件时会产生超时)
          SEND_BUF_SIZE 发送缓冲区大小 5 1024 1024
          RECV_BUF_SIZE 接收缓冲区大小 5 1024 1024
          retry_policy 重试逻辑 最大重试次数3次, 超时时间为20 * 1000毫秒,重试间隔300毫秒

          相关说明

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

          #利用options在通过创建Pipeline传入指定可选参数
          my_config = BceClientConfiguration(
                  credentials = BceCredentials('your-access-key-id', 'your-secret-access-key'),
                  endpoint = media_host,
                  send_buf_size = 5 * 1024 * 1024)
          client.create_pipeline('your_pipeline', 'your_source_bucket', 'your_source_bucket', config=my_config);
          上一篇
          快速入门
          下一篇
          Pipeline(队列)