You need to enable JavaScript to run this app.
文档中心
文档控制台
注册
veImageX

veImageX

复制全文
下载 pdf
Node.js SDK
离线转码
复制全文
下载 pdf
离线转码

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

说明

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

调用说明

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

前提条件

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

调用示例

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

创建任务队列

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

接口调用示例如下所示。

import { imagex } from "@volcengine/openapi";

export async function CreateImageTranscodeQueueDemo() {
  try {
    const imagexService = new imagex.ImagexService({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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。
      // 存储 Key 详细命名规范请参看 [veImageX 存储 Key 通用字符规则](https://www.volcengine.com/docs/508/1458331)。
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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({
      // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY
      accessKeyId: process.env.VOLC_ACCESSKEY,
      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);
  }
}

最近更新时间:2025.02.20 17:33:34
这个页面对您有帮助吗?
有用
有用
无用
无用