本文介绍如何安装和快速使用智能媒体管理Python SDK。
前提条件
- 已下载并安装Python 2或Python 3的开发环境。
- 已创建并获取Access Key。具体操作,请参见获取AccessKey。
- 已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见OSS控制台使用流程。
- 已开通智能媒体管理服务。具体操作,请参见开通产品。
注意 目前在华东1(杭州)和华东2(上海)地域中,您也可以通过调用OpenImmService接口开通智能媒体管理服务。
- 已创建所需类型的项目。具体操作,请参见创建项目。
快速使用
使用智能媒体管理Python SDK的操作步骤如下:
- 安装智能媒体管理Python SDK。
Python SDK的有如下两种安装方式。
- 方式一:通过pip安装(推荐)
执行如下命令通过pip安装智能媒体管理Python SDK。
pip install aliyun-python-sdk-core # 安装阿里云SDK核心库。 pip install aliyun-python-sdk-imm # 安装阿里云智能媒体管理Python SDK。
- 方式二:通过GithHub源码安装
如果未安装git,请安装git后,执行如下命令通过GitHub源码安装智能媒体管理Python SDK。
Python SDK在GitHub中的路径请参见Python SDK。
git clone https://github.com/aliyun/aliyun-openapi-python-sdk.git # 安装阿里云SDK核心库。 cd aliyun-python-sdk-core python setup.py install # 安装阿里云智能媒体管理Python SDK。 cd aliyun-python-sdk-imm python setup.py install
- 方式一:通过pip安装(推荐)
- 开始一个Python项目。
调用Python SDK的主要步骤如下:
- 创建Client实例。
在创建Client实例时,您需要获取并配置Region ID、AccessKey ID和AccessKey Secret。
- 创建API请求并设置参数。
- 发起请求并处理应答或异常。
如下示例以在华东1(杭州)地域中创建文档转换任务为例说明。
- 创建文档转换任务。
#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkimm.request.v20170906.CreateOfficeConversionTaskRequest import CreateOfficeConversionTaskRequest client = AcsClient('your_access_key_id', 'your_access_key_secret', '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 = "vector" createReq.set_Project("immdoctest") createReq.set_SrcUri(srcUri) createReq.set_TgtUri(tgtUri) createReq.set_TgtType(tgtType) response = client.do_action_with_exception(createReq) print (response)
任务创建成功的返回结果如下:
{ "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" }
- 轮询获取文档转换任务状态,轮询时间间隔为1s(不能低于0.2s),超时时间为10s。
res = json.loads(response) taskId = res["TaskId"] getReq = GetOfficeConversionTaskRequest.GetOfficeConversionTaskRequest() getReq.set_Project("immdoctest") getReq.set_TaskId(taskId) period = 1 timeout = 30 start = time.time() while True: time.sleep(period) response = client.do_action_with_exception(getReq) print (response) status = json.loads(response)["Status"] if status == "Finished": #任务完成。 print ("Task finished.") break if status == "Failed": #任务失败。 print ("Task failed.") break if time.time() - start > timeout: #任务超时。 print ("Task timeout.") break
当文档转换任务的执行状态为Running时的返回结果如下:
{ "NotifyTopicName": "", "FailDetail": { "Code": "" }, "TaskId": "ee52a217-234a-4922-8bd5-fcce5584c0e7", "NotifyEndpoint": "", "PageCount": 0, "Status": "Running", "TgtType": "vector", "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": "vector", "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": "vector", "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" }
- 创建Client实例。
在文档使用中是否遇到以下问题
更多建议
匿名提交