下载地址 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
cd aliyun-python-sdk-core python setup.py install
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 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(' ', ' ', '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) 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" } 5.2 轮询获取文档转换任务状态,轮训周期 1s(不能低于0.2s),超时时间10s res = 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() 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": "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" }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。