音视频处理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(队列)