全部产品
云市场

NodeJS SDK

更新时间:2018-11-17 14:16:11

下载地址

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

  1. $ npm i @alicloud/pop-core --save

步骤 5 创建文档转换任务

API 文档参考:CreateOfficeConversionTask

  1. const { RPCClient } = require('@alicloud/pop-core');
  2. var client = new RPCClient({
  3. endpoint:'http://imm.cn-hangzhou.aliyuncs.com',
  4. accessKeyId: your_app_key_id,
  5. accessKeySecret: your_app_key_secret,
  6. apiVersion: '2017-09-06'
  7. });
  8. try{
  9. var params = {
  10. Project: "convertOfficeProject",
  11. SrcUri: "oss://preview-office-bucket/docs/input/demo.pptx",
  12. TgtType: "vector",
  13. TgtUri: "oss://preview-office-bucket/docs/output/demo_pptx"
  14. };
  15. var result = await client.request("CreateOfficeConversionTask", params);
  16. console.log(result);
  17. }catch(err){
  18. console.log(err);
  19. }

步骤 6 查询文档转换任务

API 文档参考:GetOfficeConversionTask

  1. const { RPCClient } = require('@alicloud/pop-core');
  2. // 查询文档转换任务状态
  3. async function getOfficeConversionTask(project, taskId){
  4. var client = new RPCClient({
  5. endpoint:'http://imm.cn-hangzhou.aliyuncs.com',
  6. accessKeyId: your_app_key_id,
  7. accessKeySecret: your_app_key_secret,
  8. apiVersion: '2017-09-06'
  9. });
  10. try{
  11. var params = {
  12. Project: project,
  13. TaskId: taskId
  14. };
  15. var result = await client.request("GetOfficeConversionTask", params);
  16. console.log(result);
  17. }catch(err){
  18. console.log(err);
  19. }
  20. }
  21. getOfficeConversionTask("convertOfficeProject", "taskId")

轮询文档转换任务状态

直到状态不为 Running 或达到设置的次数, 状态为 Finished 返回 true,状态为 Failed 或者达到重试次数返回 false,其他情况抛出异常。

  1. async function checkTaskFinished(project, taskId, reTryTimes) {
  2. var result = {};
  3. while(reTryTimes-- > 0){
  4. await delay(1000);
  5. result = await getOfficeConversionTask(project, taskId);
  6. if(result && result.Status == "Finished"){
  7. return true;
  8. }
  9. if(result && result.Status == "Failed"){
  10. return false;
  11. }
  12. }
  13. return false;
  14. async function delay(ms) {
  15. return new Promise((a, b) => {
  16. setTimeout(a, ms);
  17. });
  18. }
  19. }

若在使用中有疑问,请参考 FAQ,或者进入 钉钉用户群 实时交流。