You need to enable JavaScript to run this app.
导航
离线转码
最近更新时间:2024.06.03 19:02:13首次发布时间:2024.06.03 19:02:13

阅读本文,您可以获取 Node SDK 离线转码的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 Node SDK 的安装及初始化操作。

调用示例

本节为您介绍离线转码相关接口的功能和调用示例。

创建任务队列

您可以调用 CreateImageTranscodeQueue 接口创建任务队列。详细的参数说明可参见 CreateImageTranscodeQueue 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function CreateImageTranscodeQueueDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 自定义任务队列名称
      "Name": "offline",
      // 自定义任务队列描述,可用于备注该队列的用途。
      "Desc": "离线转码",
      // 是否启动队列,开始执行离线转码操作。取值如下所示:
      // <li> `true`:启动 </li>
      // <li> `false`:不启动 </li>
      "IsStart": false,
      // 队列区域。默认当前区域。ToB支持取值:cn、va、sg。
      "Region": "cn",
      // 队列回调设置
      "CallbackConf" : {
        // 回调方式。仅支持取值`HTTP`。
        "Method": "HTTP",
        // 回调 HTTP 请求地址,用于接收转码结果详情。支持使用 https 和 http 协议。
        "Endpoint": "https://demo.com",
        // 回调数据格式。取值如下所示:
        // <li> `XML` </li>
        // <li> `JSON`(默认) </li>
        "DataFormat": "JSON",
        // 业务自定义回调参数,将在回调消息的`callback_args`中透传出去。具体回调参数请参考[回调内容](https://www.volcengine.com/docs/508/1104726#%E5%9B%9E%E8%B0%83%E5%86%85%E5%AE%B9)。
        "Args": "productid",
      }, 
    }

      const res = await imagexService.CreateImageTranscodeQueue(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

删除任务队列

您可以调用 DeleteImageTranscodeQueue 接口删除任务队列。详细的参数说明可参见 DeleteImageTranscodeQueue 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function DeleteImageTranscodeQueueDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 待删除的队列 ID,您可通过调用[GetImageTranscodeQueues](https://www.volcengine.com/docs/508/1107341)获取该账号下全部任务队列 ID。
      // 账号内置默认任务队列不允许被删除。
      "QueueId": "649a9dbc32**64d44cf5b0",
    }

      const res = await imagexService.DeleteImageTranscodeQueue(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

更新任务队列配置

您可以调用 UpdateImageTranscodeQueue 接口更新任务队列配置。详细的参数说明可参见 UpdateImageTranscodeQueue 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function UpdateImageTranscodeQueueDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 待更新的队列 ID,您可通过调用[GetImageTranscodeQueues](https://www.volcengine.com/docs/508/1107341)获取该账号下全部任务队列 ID。
      "Id": "649a9dbc32d22064d44cf5b0",
      // 更新后的队列名称
      "Name": "offline",
      // 更新后的队列描述
      "Desc": "离线转码",
      // 是否启用回调。取值如下所示:
      // <li> `true`:启用 </li>
      // <li> `false`:不启用 </li>
      "EnableCallback": true,
      // 更新后的队列回调配置
      "CallbackConf" : {
        // 回调方式。仅支持取值 `HTTP`。
        "Method": "HTTP",
        // 回调 HTTP 请求地址,用于接收转码结果详情。支持使用 https 和 http 协议。
        "Endpoint": "https://demo.com",
        // 回调数据格式。取值如下所示:
        // <li> `XML` </li>
        // <li> `JSON`(默认) </li>
        "DataFormat": "JSON",
        // 业务自定义回调参数,将在回调消息的`callback_args`中透传出去。具体回调参数请参考[回调内容](https://www.volcengine.com/docs/508/1104726#%E5%9B%9E%E8%B0%83%E5%86%85%E5%AE%B9)。
        "Args": "productid",
      }, 
    }

      const res = await imagexService.UpdateImageTranscodeQueue(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

更新任务队列状态

您可以调用 UpdateImageTranscodeQueueStatus 接口更新任务队列状态。详细的参数说明可参见 UpdateImageTranscodeQueueStatus 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function UpdateImageTranscodeQueueStatusDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 待更新的队列 ID,您可通过调用[GetImageTranscodeQueues](https://www.volcengine.com/docs/508/1107341)获取该账号下全部任务队列 ID。
      "Id": "649a9dbc32**64d44cf5b0",
      // 更新后的队列状态。取值如下所示:
      // <li> `Pending`:排队中 </li>
      // <li> `Running`:执行中 </li>
      "Status": "Pnding",
    }

      const res = await imagexService.UpdateImageTranscodeQueueStatus(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

获取任务队列

您可以调用 GetImageTranscodeQueues 接口获取任务队列。详细的参数说明可参见 GetImageTranscodeQueues 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function GetImageTranscodeQueuesDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 队列所在地区。默认当前地区。ToB取值枚举:cn、va、sg。
      "Region": "cn",
      // 返回队列名称或队列描述中包含该值的队列。默认为空,不传则返回所有队列。
      "SearchPtn": "offline",
      // 分页条数,取值范围为(0,100]。
      "Limit": 10,
      // 分页偏移量,默认为 0。取值为 1 时,表示跳过第一条数据,从第二条数据取值。
      "Offset": 0,
    }

      const res = await imagexService.GetImageTranscodeQueues(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

提交转码任务

您可以调用 CreateImageTranscodeTask 接口提交转码任务。详细的参数说明可参见 CreateImageTranscodeTask 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function CreateImageTranscodeTaskDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 任务队列名称 ID。缺省情况下提交至账号默认任务队列。您可通过调用[GetImageTranscodeQueues](https://www.volcengine.com/docs/508/1160404)获取该账号下全部任务队列 ID。
      "QueueId": "649a9dbc3***64d44cf5b0",
      // 服务 ID。
      // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li>
      // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li>
      "ServiceId": "5s****fo",
      // 转码模板。您可通过调用 [GetAllImageTemplates](https://www.volcengine.com/docs/508/9386) 获取指定服务下全部模版信息。
      "Template": "tplv-5s****fo-33.jpeg",
      // 数据类型,取值如下所示:
      // <li> `uri`:指定 ServiceId 下存储 URI。 </li>
      // <li> `url`:公网可访问的 URL。 </li>
      "DataType": "uri",
      // `DataList`和`Filelist`二选一必填,同时配置时,`DataList`优先生效。
      // 待转码的图片 uri 或 url 列表,最多支持 10 万条。
      // <li> 若`DataType`取值`uri`,此处请传入指定 ServiceId 下的存储 URI。 </li>
      // <li> 若`DataType`取值`url`,此处请传入公网可访问的 URL。 </li>
      "DataList" : ["http://demo.com/example.png"], 
      // `DataList`和`Filelist`二选一必填,同时配置时,`DataList`优先生效。
      // 待转码的图片 uri 或 url 文件列表。具体使用方式如下:
      // 1. 在 txt、csv 文件内填写指定数据类型的待转码图片地址,每行填写一个,最多不超过 10 万条。
      // 2. 将该文件上传至指定服务后,获取其存储 URI。
      // 3. 将该存储 URI,传入 `FileList`。
      "FileList" : ["tos-cn-i-5s***fo/a.txt","tos-cn-i-5s***fo/uridemo.txt"], 
      // 转码产物的 Storekey 列表,仅当`DataList`不为空时有效,长度需与`DataList`长度一致。不传时默认使用固定规则生成产物的 Storekey。填写规则如下:
      // <li> 使用 UTF-8 编码。 </li>
      // <li> 长度必须在 1~1024 个字符之间。 </li>
      // <li> 不能以反斜线()开头。 </li>
      // <li> 不支持 `a`、`b`、`t`、`n`、`v`、`f`、`r` 字符。 </li>
      "ResKeyList" : ["name1","name2"], 
      // 转码是否保留 exif。取值如下所示:
      // <li> `true`:保留 </li>
      // <li> `false`:(默认)不保留 </li>
      "EnableExif": false,
      // 任务回调配置。缺省情况下默认使用队列回调配置。
      "CallbackConf" : {
        // 回调方式。仅支持取值`HTTP`。
        "Method": "HTTP",
        // 回调 HTTP 请求地址,用于接收转码结果详情。支持使用 https 和 http 协议。
        "Endpoint": "https://demo.com",
        // 回调数据格式。取值如下所示:
        // <li> `XML` </li>
        // <li> `JSON`(默认) </li>
        "DataFormat": "JSON",
        // 业务自定义回调参数,将在回调消息的`callback_args`中透传出去。具体回调参数请参考[回调内容](https://www.volcengine.com/docs/508/1104726#%E5%9B%9E%E8%B0%83%E5%86%85%E5%AE%B9)。
        "Args": "productid",
      }, 
    }

      const res = await imagexService.CreateImageTranscodeTask(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

手动触发回调

您可以调用 CreateImageTranscodeCallback 接口手动触发回调。详细的参数说明可参见 CreateImageTranscodeCallback 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function CreateImageTranscodeCallbackDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 任务条目 ID
      "EntryId": "649a9332***0e9cc0a0ed",
    }

      const res = await imagexService.CreateImageTranscodeCallback(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

删除任务执行详情

您可以调用 DeleteImageTranscodeDetail 接口删除任务执行详情。详细的参数说明可参见 DeleteImageTranscodeDetail 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function DeleteImageTranscodeDetailDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 待删除的任务条目 ID,您可通过调用[GetImageTranscodeDetails](https://www.volcengine.com/docs/508/1107749)获取该账号下全部执行任务条目 ID。
      "EntryId": "649a9332***80e9cc0a0ec",
      // 待删除的任务条目 ID 列表,您可通过调用[GetImageTranscodeDetails](https://www.volcengine.com/docs/508/1107749)获取该账号下全部执行任务条目 ID。
      "Entries" : ["6486g82***82s73h01a"], 
    }

      const res = await imagexService.DeleteImageTranscodeDetail(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }
    

获取任务执行详情

您可以调用 GetImageTranscodeDetails 接口获取任务执行详情。详细的参数说明可参见 GetImageTranscodeDetails 接口文档。

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";
  
  export async function GetImageTranscodeDetailsDemo () {
    try {
      const imagexService = new imagex.ImagexService({
        // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
        accessKeyId: process.env.VOLC_ACCESSKEY,
        // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
        secretKey: process.env.VOLC_SECRETKEY,
      });
      const requestParam = {
      // 队列 ID,您可通过调用[GetImageTranscodeQueues](https://www.volcengine.com/docs/508/1107341)获取该账号下全部任务队列 ID。
      "QueueId": "649a9dbc32**064d44cf5b0",
      // 任务提交的起始 Unix 时间戳
      // `StartTime`与`EndTime`时间间隔最大不超过 7 天。
      "StartTime": 1684713599,
      // 任务提交的截止 Unix 时间戳
      // `StartTime`与`EndTime`时间间隔最大不超过 7 天。
      "EndTime": 1685913599,
      // 执行状态,填入多个时使用英文逗号分隔。取值如下所示:
      // <li> `Pending`:排队中 </li>
      // <li> `Running`:执行中 </li>
      // <li> `Success`:执行成功 </li>
      // <li> `Fail`:执行失败 </li>
      "Status": "Pending",
      // 返回图片 url 或 uri 中包含该值的任务。默认为空,不传则返回所有任务。
      "SearchPtn": "tos-cn-i-5sq****fo/test",
      // 分页条数,取值范围为(0, 100]。
      "Limit": 10,
      // 分页偏移量,默认为 0。取值为 1 时,表示跳过第一条数据,从第二条数据取值。
      "Offset": 0,
    }

      const res = await imagexService.GetImageTranscodeDetails(requestParam);
      console.log('res',res)
    } catch (err) {
      console.error(err);
    }
  }