阅读本文,您可以获取 Node SDK 离线转码的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 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); } }