本文介绍如何安装和快速使用智能媒体管理Node.js SDK。
前提条件
- 已下载并安装Node.js 6.x以上版本的开发环境。
- 已创建并获取Access Key。具体操作,请参见获取AccessKey。
- 已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见OSS控制台使用流程。
- 已开通智能媒体管理服务。具体操作,请参见开通产品。
注意 目前在华东1(杭州)和华东2(上海)地域中,您也可以通过调用OpenImmService接口开通智能媒体管理服务。
- 已创建所需类型的项目。具体操作,请参见创建项目。
快速使用
使用智能媒体管理Node.js SDK的操作步骤如下:
- 安装智能媒体管理Node.js SDK。
使用npm添加智能媒体管理Node.js SDK。安装命令如下:
npm i @alicloud/pop-core --save
Node.js SDK在GitHub中的路径请参见Node.js SDK。
- 开始一个Node.js项目。
- 调用CreateOfficeConversionTask接口创建文档转换任务。
const Core = require('@alicloud/pop-core'); var client = new Core({ accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', endpoint: 'https://imm.cn-hangzhou.aliyuncs.com', apiVersion: '2017-09-06' }); var params = { "RegionId": "cn-hangzhou", "SrcUri": "oss://preview-office-bucket/docs/input/demo.pptx", "TgtUri": "oss://preview-office-bucket/docs/output/demo_pptx", "Project": "immdoctest", "TgtType": "vector" } var requestOption = { method: 'POST' }; client.request('CreateOfficeConversionTask', params, requestOption).then((result) => { console.log(JSON.stringify(result)); }, (ex) => { console.log(ex); })
- 调用GetOfficeConversionTask接口查询文档转换任务。
const { RPCClient } = require('@alicloud/pop-core'); //查询文档转换任务状态。 async function getOfficeConversionTask(project, taskId){ var client = new RPCClient({ endpoint:'http://imm.cn-hangzhou.aliyuncs.com', accessKeyId: 'your_access_key_id', accessKeySecret: 'your_access_key_secret', apiVersion: '2017-09-06' }); try{ var params = { Project: project, TaskId: taskId }; var result = await client.request("GetOfficeConversionTask", params); console.log(JSON.stringify(result)); }catch(err){ console.log(err); } } getOfficeConversionTask("immdoctet", "formatconvert-a1e2124e-5f10-4e78-bf73-d41d463d6727")
您可以使用如下示例轮询文档转换任务状态,直到任务状态不为Running或达到设置的次数时结束轮询。
如果任务状态为Finished,则返回true,如果状态为Failed或者达到重试次数,则返回false,其他情况均抛出异常。
async function checkTaskFinished(project, taskId, reTryTimes) { var result = {}; while(reTryTimes-- > 0){ await delay(1000); result = await getOfficeConversionTask(project, taskId); if(result && result.Status == "Finished"){ return true; } if(result && result.Status == "Failed"){ return false; } } return false; async function delay(ms) { return new Promise((a, b) => { setTimeout(a, ms); }); } }
- 调用CreateOfficeConversionTask接口创建文档转换任务。