下载地址
IMM Service 的 Python SDK 让开发人员可以非常方便地使用 Python 操作阿里云智能媒体管理服务。 已经开源到github。
操作步骤
为快速开始使用 IMM Service Python SDK,请按照如下步骤进行。
步骤 1 创建阿里云账号为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里。
步骤 2 获取阿里云访问密钥
为了使用 IMM Service Python SDK,您必须申请阿里云的 访问密钥。
登录阿里云 密钥管理页面。选择一对用于 SDK 的访问密钥对。如果没有,请创建一对新访问密钥,且保证它处于启用状态。有关如何创建访问密钥,参见 创建访问密钥。
该密钥对会在下面的步骤使用,且需要保管好,不能对外泄露。另外,您可以参考 SDK 配置了解更多 SDK 如何使用访问密钥的信息。
步骤 3 创建项目
可以使用 Python SDK 创建,也可以在控制台上创建好项目(Project)。有关如何创建 Project ,参见 创建项目 。
步骤 4 安装 Imm Service Python SDK
Python SDK 的安装方式有两种, 目前支持 Python 2和 Python 3
使用 pip 安装(推荐)
执行以下命令,通过 pip 安装 SDK。
pip install aliyun-python-sdk-core# 安装阿里云 SDK 核心库
pip install aliyun-python-sdk-imm# 安装管理 IMM 的库下载 GithHub 源码
执行以下命令,通过 GitHub 安装 Python SDK。
git clone https://github.com/aliyun/aliyun-openapi-python-sdk.git
# 安装阿里云 SDK 核心库
cd aliyun-python-sdk-core
python setup.py install
# 安装阿里云 IMM SDK
cd aliyun-python-sdk-imm
python setup.py install
步骤 5 使用 Python SDK
以下这个代码示例展示了调用阿里云 Python SDK 的3个主要步骤:
创建 Client 实例。在创建 Client 实例时,您需要获取 Region ID、AccessKey ID 和 AccessKey Secret。
创建 API 请求并设置参数。
发起请求并处理应答或异常。
下面的 demo 以文档转换为例,展示了如何使用 Python SDK
5.1 创建文档转换任务#!/usr/bin/env python
#coding=utf-8
fromaliyunsdkcore.clientimportAcsClient
fromaliyunsdkcore.acs_exception.exceptionsimportClientException
fromaliyunsdkcore.acs_exception.exceptionsimportServerException
fromaliyunsdkimm.request.v20170906.CreateOfficeConversionTaskRequestimportCreateOfficeConversionTaskRequest
client=AcsClient('','','cn-hangzhou')
createReq=CreateOfficeConversionTaskRequest()
srcUri="oss://your-bucket-name/your-path/your-doc.doc"
tgtUri="oss://your-bucket-name/your-path/your-doc-output"
tgtType="png"
createReq.set_Project("test-doc-project")
createReq.set_SrcUri(srcUri)
createReq.set_TgtUri(tgtUri)
createReq.set_TgtType(tgtType)
response=client.do_action_with_exception(createReq)
printresponse
任务创建成功返回结果如下{
"Status":"Running",
"CreateTime":"2018-07-21T15:37:28.539Z",
"RequestId":"01E3E9D5-48B2-4326-BC75-9AAD22953077",
"Percent":0,
"TaskId":"ee52a217-234a-4922-8bd5-fcce5584c0e7",
"TgtLoc":"oss://your-bucket-name/your-path/your-doc-output"
}
5.2 轮询获取文档转换任务状态,轮训周期 1s(不能低于0.2s),超时时间10sres=json.loads(response)
taskId=res["TaskId"]
getReq=GetOfficeConversionTaskRequest.GetOfficeConversionTaskRequest()
getReq.set_Project("test-doc-project")
getReq.set_TaskId(taskId)
period=1
timeout=30
start=time.time()
whileTrue:
time.sleep(period)
response=client.do_action_with_exception(getReq)
printresponse
status=json.loads(response)["Status"]
ifstatus=="Finished":#任务完成
print"Task finished."
break
ifstatus=="Failed":#任务失败
print"Task failed."
break
iftime.time()-start>timeout:#任务超时
print"Task timeout."
break
Running状态结果返回如下{
"NotifyTopicName":"",
"FailDetail":{
"Code":""
},
"TaskId":"ee52a217-234a-4922-8bd5-fcce5584c0e7",
"NotifyEndpoint":"",
"PageCount":0,
"Status":"Running",
"TgtType":"png",
"FinishTime":"",
"CreateTime":"2018-07-21T15:37:28.539Z",
"RequestId":"4153D465-45D3-4457-A273-DED40505CAD5",
"SrcUri":"oss://your-bucket-name/your-path/your-doc.doc",
"Percent":0,
"TgtUri":"oss://your-bucket-name/your-path/your-doc-output"
}
Finished 状态结果返回如下{
"NotifyTopicName":"",
"FailDetail":{
"Code":"NoError"
},
"TaskId":"ee52a217-234a-4922-8bd5-fcce5584c0e7",
"NotifyEndpoint":"",
"PageCount":32,
"Status":"Finished",
"TgtType":"png",
"FinishTime":"2018-07-21T15:37:32.419Z",
"CreateTime":"2018-07-21T15:37:28.539Z",
"RequestId":"CACA2EC6-98FC-457A-810F-4035DD32A43B",
"SrcUri":"oss://your-bucket-name/your-path/your-doc.doc",
"Percent":100,
"TgtUri":"oss://your-bucket-name/your-path/your-doc-output"
}
Failed 状态结果返回如下{
"NotifyTopicName":"",
"FailDetail":{
"Code":"FailedToDownloadSrcFile"
},
"TaskId":"1c8d3a19-9f28-433f-be13-8e42b8851ef3",
"NotifyEndpoint":"",
"PageCount":0,
"Status":"Failed",
"TgtType":"png",
"FinishTime":"",
"CreateTime":"2018-07-21T15:47:53.865Z",
"RequestId":"453B7362-D404-47A3-88A7-BE14F494812C",
"SrcUri":"oss://your-bucket-name/your-path/your-doc.doc",
"Percent":0,
"TgtUri":"oss://your-bucket-name/your-path/your-doc-output"
}
若在使用中有疑问,请参考 FAQ,或者进入 钉钉用户群 实时交流。