MediaClient
更新时间:2022-10-21
配置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的域名来进行定义,目前MCP提供了“华北-北京”、“华南-广州”和“华东-苏州”三个Region。详细的服务域名可以参考:服务域名。随着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);