You need to enable JavaScript to run this app.
导航
离线转码
最近更新时间:2024.08.12 15:33:25首次发布时间: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({
      // 强烈建议不要把 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。填写规则如下:
      // <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({
      // 强烈建议不要把 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);
  }
}