下载地址 IMM Service 的 NodeJS SDK 让 NodeJS 开发人员可以非常方便地使用 NodeJS 程序操作服务。开发者可以直接使用 npm 添加 SDK。目前,SDK 建议使用 6.x 以上版本,已经开源到 github。
操作步骤 为快速开始使用 IMM NodeJS SDK,请按照如下步骤进行。
步骤 1 创建阿里云账号 具体方法请参考 阿里云账号注册流程。
为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里。
步骤 2 获取阿里云访问密钥 为了使用 IMM Service NodeJS SDK,您必须申请阿里云的 访问密钥。
登录阿里云 密钥管理页面。选择一对用于 SDK 的访问密钥对。如果没有,请创建一对新访问密钥,且保证它处于启用状态。有关如何创建访问密钥,参见 创建访问密钥。
该密钥对会在下面的步骤使用,且需要保管好,不能对外泄露。另外,您可以参考 SDK 配置了解更多 SDK 如何使用访问密钥的信息。
步骤 3 创建项目 在使用 IMM 服务 NodeJS SDK 之前,请先在控制台上创建好项目(Project)。有关如何创建 Project ,参见 创建项目 。
步骤 4 安装 Imm Service NodeJS SDK $ npm i @alicloud/pop-core --save 步骤 5 创建文档转换任务 API 文档参考:CreateOfficeConversionTask
const { RPCClient } = require('@alicloud/pop-core'); var client = new RPCClient({ endpoint:'http://imm.cn-hangzhou.aliyuncs.com', accessKeyId: your_app_key_id, accessKeySecret: your_app_key_secret, apiVersion: '2017-09-06' }); try{ var params = { Project: "convertOfficeProject", SrcUri: "oss://preview-office-bucket/docs/input/demo.pptx", TgtType: "vector", TgtUri: "oss://preview-office-bucket/docs/output/demo_pptx" }; var result = await client.request("CreateOfficeConversionTask", params); console.log(result); }catch(err){ console.log(err); } 步骤 6 查询文档转换任务 API 文档参考: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_app_key_id, accessKeySecret: your_app_key_secret, apiVersion: '2017-09-06' }); try{ var params = { Project: project, TaskId: taskId }; var result = await client.request("GetOfficeConversionTask", params); console.log(result); }catch(err){ console.log(err); } } getOfficeConversionTask("convertOfficeProject", "taskId") 轮询文档转换任务状态 直到状态不为 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); }); } } 若在使用中有疑问,请参考 FAQ,或者进入 钉钉用户群 实时交流。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。