阅读本文,您可以获取 Node SDK 模板管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Node SDK 的安装及初始化操作。
本节为您介绍模板管理相关接口的功能和调用示例。
您可以调用 CreateImageTemplate 接口创建图片模板。详细的参数说明可参见 CreateImageTemplate 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function CreateImageTemplateDemo() { 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。 // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li> // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "8h**9q", // 模板名称,必须使用该服务的图片模板固定前缀。模板名称能包含的字符正则集合为[a-zA-Z0-9_-]。 // note: // 您可以通过调用[获取单个服务信息](https://www.volcengine.com/docs/508/9358)接口的查看返回参数TemplatePrefix的值。 TemplateName: "tplv-e4**c0-test", // 是否为临时使用,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> Temporary: true, // 仅当指定输出格式非动图时,配置有效。 // 保留 EXIF 信息配置。 Exif: { // 是否开启保留全部 EXIF 信息。取值如下所示: // <li> true:是 </li> // <li> false:否 </li> AutoOrientOff: false, // 保留部分 EXIF 信息的具体内容,多个之间用,分隔。更多信息请参考[标准 EXIF 标签](https://exiv2.org/tags.html)。 ExifRetainNames: ["Orientation", "DateTime"], // 是否开启保留全部 EXIF 信息,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> ExifReserve: true, }, // 对结果图片执行的画质评估配置 Evals: [ { // 评估名,画质评估固定取值为 quality。 Name: "quality", }, ], // 是否直接更新模板,取值如下所示: // * true:已有的线上模板会同步更新,该操作直接生效; // * false:新增一个模板,已有模板不受影响。 DoUpdate: false, // 是否开启鉴权,取值如下所示: // * true:开启鉴权。 // * false:(默认)关闭鉴权。 // note: // 一般当通过模板参数下发敏感信息时,比如文字水印内容、URL 失效期,需要对图片 URL 鉴权保护,防止内容被篡改。 WithSig: false, // 图片模板使用的参数列表,URL 中下发参数的顺序需要跟列表中的保持一致。 Parameters: ["snapshot_time"], // URL 的失效期,为 Unix 时间戳,一般配置为在 URL 中通过模板参数动态下发。 ReqDeadline: "1636967882", // 对图片编码使用的质量参数,取值范围为 [1,100],默认为 75。 OuputQuality: 75, // 压缩质量模型,默认为空,表示使用绝对质量。取值 relative 时,表示使用相对质量,原图为 JPEG 有效。 QualityMode: "relative", // 是否对图片结果缓存,默认为空。取值如下所示: // <li> read_write:对结果读写 </li> // <li> read_only:对结果只读 </li> Persistence: "read_write", // 该模板计划使用的输出格式。 // * 取值为image,表示输出原格式。 // * 支持输出的静图格式:png、jpeg、heic、avif、webp、vvic。 // * 支持输出的动图格式:awebp、heif、avis。 OutputFormat: "image", // 模板计划使用的降级格式,仅对 heic 静图有效。取值如下所示: // <li> webp </li> // <li> jpeg </li> DemotionFormat: "jpeg", // 是否同步处理,仅对 heic 静图有效。取值如下所示: // <li> true:是 </li> // <li> false:否 </li> Sync: true, // 对图片的编辑操作。 Filters: [ { // 操作名称,具体详情请见[图片编辑数据结构](https://www.volcengine.com/docs/508/127820)。 Name: "bright", }, ], // 用于图片服务输出时的图片编码自定义参数,键值均为 string。 // * 取值png.use_quant表示是否开启 png quant 压缩,取值为true表示开启,取值为false表示关闭; // * 取值heic.sync表示使用 heic 同步编码,取值为true表示同步; // * 取值heic.timeout表示 heic 同步编码的超时时间,比如 20。 OutputExtra: { // 是否压缩颜色空间,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> "png.use_quant": "false", // 是否采用 jpeg 渐进编码格式,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> "jpeg.progressive": "false", // 仅当OutputFormat取值为heic时配置有效 // 是否开启 ROI 编码,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> "heic.roi": "false", // 仅当OutputFormat取值为heic时配置有效 // 色位深度,值越大则提供的图像色彩范围越多,使图像颜色变化的更细腻,但图像体积也会增大。取值如下所示: // <li> 8:8bit </li> // <li> 10:10bit </li> "heic.encode.depth": "8", // 仅当OutputFormat取值为heic时配置有效 // 缩略图比例。在原图基础上,编码缩小一定倍数的小分辨率图片,跟大图一起封装在同一张图片中,缩小倍数不建议过大,一般为 5~10 之间相对合理。 "heic.thumb.ratio": "5", // 仅当OutputFormat取值为heic时配置有效 // 是否带透明通道编码,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> "heic.alpha.reserve": "false", "jpeg.size.fixed": "10000", "jpeg.size.fixed.padding": "append", "heic.aq.mode": "1", "heic.quality.adapt.pixlimit": "1000000", "heic.quality.adapt.version": "3", "jpeg.alpha.demotion": "png", "jpeg.quality.adapt.pixlimit": "1000000", "jpeg.quality.adapt.version": "3", "webp.quality.adapt.pixlimit": "1000000", "webp.quality.adapt.version": "3", }, // 指定图像自适应配置。 AdaptiveFmt: { // 静图自适应,具体实现说明参考[图像自适应压缩](https://www.volcengine.com/docs/508/75733)。取值如下所示: // <li> webp:若 HTTP 请求头中 accept 头部包含 image/webp 的字符串匹配,则返回 webp 格式。否则返回 OutputFormat 指定格式。 </li> // <li> heic:若 HTTP 请求头中 accept 头部包含 image/heic 的字符串匹配,则返回 webp 格式。否则返回 OutputFormat 指定格式。 </li> // <li> avif:若 HTTP 请求头中 accept 头部包含 image/avif 的字符串匹配,则返回 webp 格式。否则返回 OutputFormat 指定格式。 </li> // <li> dynamic:智能模式,即根据请求头中 MIME 查找具体格式,查找成功,则返回该格式,否则返回 OutputFormat 指定格式。 </li> Static: "webp", // 动图自适应,具体实现说明参考[图像自适应压缩](https://www.volcengine.com/docs/508/75733)。取值如下所示: // 取值如下所示: // <li> webp:若 HTTP 请求头中 accept 头部包含 image/webp 的字符串匹配,则返回 webp 格式。否则返回 OutputFormat 指定格式。 </li> // <li> heic:若 HTTP 请求头中 accept 头部包含 image/heic 的字符串匹配,则返回 webp 格式。否则返回 OutputFormat 指定格式。 </li> // <li> avif:若 HTTP 请求头中 accept 头部包含 image/avif 的字符串匹配,则返回 webp 格式。否则返回 OutputFormat 指定格式。 </li> // <li> dynamic:智能模式,即根据请求头中 MIME 查找具体格式,查找成功,则返回该格式,否则返回 OutputFormat 指定格式。 </li> Animated: "webp", }, // 仅当指定输出格式为静图时,配置有效。 // 视频截帧配置。 Snapshot: { // 视频截帧类型,取值如下所示: // <li> default:智能模式,从视频首帧开始逐帧地检测当前帧是否为黑屏,并最终返回第一个非黑屏的帧。 </li> // <li> offset:指定时间戳模式,返回指定截帧时间的那一帧。可在 TimeOffsetMs 和 TimeOffsetMsStr 之间二选一。 </li> Type: "default", // 当 Type 为 offset 时,在TimeOffsetMs 和 TimeOffsetMsStr 之间二选一。 // 指定截图时间,取值范围为[0,视频时长],单位为 ms。默认为 0,表示返回首帧。若指定时间 > 视频长度,则返回视频最后一帧。 TimeOffsetMs: 0, // 当 Type 为 offset 时,在TimeOffsetMs 和 TimeOffsetMsStr 之间二选一。 // 指定截图时间为使用模板参数动态下发的方式,取值固定为${snapshot_time}。 TimeOffsetMsStr: "${snapshot_time}", }, // 仅当指定输出格式为动图时,配置有效。 // 视频转动图配置。 Animation: { // 动图起始时间戳,单位为 ms。 StartTime: 6, // 动图时长,单位为 ms。 Duration: 1000, // 抽帧策略,取值如下所示: // <li> fps:抽帧频率,1 秒 X 帧。 </li> // <li> spf:抽帧间隔,X 秒 1 帧。 </li> // <li> key:抽取关键帧。 </li> SelectFrameMode: "fps", // 帧率,1 秒 X 帧。仅当SelectFrameMode取值为fps时需要配置。 FramePerSecond: 10, // 秒数,X 秒 1 帧。仅当SelectFrameMode取值为spf时需要配置。 SecondPerFrame: 1, // 同步等待时长,单位为 s,超时未完成则根据DemotionType降级。 WaitTime: 5, // 降级类型,取值如下所示: // <li> image:抽取一帧降级返回 </li> // <li> video:直接返回原视频降级 </li> DemotionType: "vedio", }, // 仅当指定输出格式为静图时,配置有效。 // 动图截帧配置。 AnimExtract: { // 动图截帧策略,取值如下所示: // <li> 0:智能模式,从动图首帧开始逐帧检测当前帧亮度是否大于 80,并最终返回第一个亮度大于 80 的帧。 </li> // <li> 1:全局最优,从动图首帧开始逐帧检测并返回亮度最大的一帧。 </li> Strategy: 0, // 动图异步处理超时时间,单位为 ms。默认为 1500,取值负数时表示无超时时间。若在指定时间范围内处理未完成则返回失败。 Timeout: 1500, }, }; const res = await imagexService.CreateImageTemplate(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 DeleteImageTemplate 接口删除图片模板。详细的参数说明可参见 DeleteImageTemplate 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function DeleteImageTemplateDemo() { 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 = { // imagex服务ID ServiceId: "8h**9q", // 待删除模板名称,最大限制为 100。 // note: // 您可以通过调用[获取服务下所有图片模板](https://www.volcengine.com/docs/508/9386)获取所需的模板名称。 TemplateNames: ["TemplateName1", "TemplateName2"], }; const res = await imagexService.DeleteImageTemplate(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetImageTemplate 接口获取单个图片模板。详细的参数说明可参见 GetImageTemplate 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageTemplateDemo() { 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。 // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li> // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "8h**9q", // 模板名称。 // * 您可以通过调用[获取服务下所有模板](https://www.volcengine.com/docs/508/9386)获取所需的模板名称。 TemplateName: "TemplateName1", }; const res = await imagexService.GetImageTemplate(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetAllImageTemplates 接口获取服务下所有图片模版。详细的参数说明可参见 GetAllImageTemplates 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetAllImageTemplatesDemo() { 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 // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li> // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "8h**9q", // 支持的字符正则集合为[a-zA-Z0-9_-]。指定时返回模板名称包含该字符串的图片模板,不填或者为空则返回所有模板。 TemplateNamePattern: "pic", // 分页偏移量,默认 0。取值为 1 时,表示跳过第一条数据,从第二条数据取值。 Offset: 0, // 分页获取条数,默认 10。 Limit: 10, // 是否按照模板创建时间升序查询,默认为false。 // * 取值为true时,表示按升序查询。 // * 取值为false时,表示降序查询。 Asc: "true", }; const res = await imagexService.GetAllImageTemplates(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 DeleteTemplatesFromBin 接口删除回收站模板。详细的参数说明可参见 DeleteTemplatesFromBin 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function DeleteTemplatesFromBinDemo() { 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。 // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li> // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "8h**9q", // 待删除模板名称。 // note: // 您可以通过调用[获取回收站中所有模板](https://www.volcengine.com/docs/508/132241)获取所需的模板名称。 TemplateNames: ["TemplateName1", "TemplateName2"], }; const res = await imagexService.DeleteTemplatesFromBin(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 CreateTemplatesFromBin 接口恢复回收站模板。详细的参数说明可参见 CreateTemplatesFromBin 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function CreateTemplatesFromBinDemo() { 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。 // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li> // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "8h**9q", // 待恢复模板名称。 // note: // 您可以通过调用[获取回收站中所有模板](https://www.volcengine.com/docs/508/132241)获取所需的模板名称。 TemplateNames: ["TemplateName1", "TemplateName2"], }; const res = await imagexService.CreateTemplatesFromBin(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetTemplatesFromBin 接口获取回收站中所有模板。详细的参数说明可参见 GetTemplatesFromBin 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetTemplatesFromBinDemo() { 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 // <li> 您可以在 veImageX 控制台 [服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 </li> // <li> 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "8h**9q", // 仅返回模板名称包含该字符串的图片模板,不填或者为空则返回所有模板。 TemplateNamePattern: "pic", // 分页偏移。默认 0。取值为1,表示跳过第一条数据,从第二条数据开始取值。 Offset: 0, // 分页获取条数,默认 10。 Limit: 10, // 是否按照模板创建时间升序查询,支持取值:true、false,默认为false。 Asc: "true", }; const res = await imagexService.GetTemplatesFromBin(requestParam); console.log("res", res); } catch (err) { console.error(err); } }