阅读本文,您可以获取 Node.js SDK 服务管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Node.js SDK 的安装及初始化操作。
本节为您介绍服务管理相关接口的功能和调用示例。
您可以调用 GetImageServiceSubscription 接口查询服务开通状态。详细的参数说明可参见 GetImageServiceSubscription 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageServiceSubscriptionDemo() { try { const Client = 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 = { // 附加组件类型,取值AI获取服务端智能处理开通情况。默认返回ImageX服务开通情况 AddOnType: "AI", // 附加组件ID,获取指定附加组件的开通情况。默认返回ImageX服务开通情况 AddOnId: "xxxx", // 附加组件英文标识,获取指定附加组件的开通情况。默认返回ImageX服务开通情况。 AddOnKey: "enhance", }; const res = await Client.GetImageServiceSubscription(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 CreateImageService 接口创建服务。详细的参数说明可参见 CreateImageService 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function CreateImageServiceDemo() { try { const Client = 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 = { // 服务名称,最多不超过 32 个字符。创建成功后,名称和区域不支持变更。建议您使用能够标识业务的服务名。 ServiceName: "图片处理", // 服务地域,取值如下所示: // * cn:中国 // * mya:亚太东南(柔佛) ServiceRegion: "cn", // 服务类型,取值如下所示: // * StaticRc:素材托管服务,支持任意类型资源的存储和分发。 // * Image:图片处理服务,除支持任意类型资源的存储和分发外,还支持对图片进行实时处理。 ServiceType: "Image", // 创建服务时需要绑定的域名列表,最多支持一次绑定 10 个域名。 Domains: [ { // 待绑定的已备案域名。 Domain: "a.test.com", // 待绑定的证书 ID。 CertID: "109jo**027y3", }, ], // 服务绑定的项目,默认值为 default。项目是在火山引擎访问控制中资源分组的概念,您需要将服务加入某一个项目中。您可以在火山引擎控制台[项目管理](https://console.volcengine.com/iam/projcetmanage/)页面中获取项目名称。 ProjectName: "default", // 服务绑定的标签,默认为空,表示不绑定标签。可用于通过标签将不同业务类别、用途的存储服务进行分类管理,也适用于标签制授权和标签分账等场景。您可以在火山引擎控制台[资源管理](https://console.volcengine.com/resourcemanager/tag/resource_tag)页面新建标签。 ResourceTags: [ { // 标签键 Key: "userkey", // 标签值 Value: "uservalue", }, ], }; const res = await Client.CreateImageService(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 DeleteImageService 接口删除服务。详细的参数说明可参见 DeleteImageService 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function DeleteImageServiceDemo() { try { const Client = 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: "g9y**8hu", }; const res = await Client.DeleteImageService(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateServiceName 接口更新服务名称。详细的参数说明可参见 UpdateServiceName 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateServiceNameDemo() { try { const Client = 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。 // * 您可以在 veImageX 控制台[服务管理](https://console.volcengine.com/imagex/service_manage/)页面,在创建好的图片服务中获取服务 ID。 // * 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考[获取所有服务信息](https://www.volcengine.com/docs/508/9360)。 ServiceId: "uh1**89i", // 服务名称,最多不超过 32 个字符。 ServiceName: "新服务", }; const res = await Client.UpdateServiceName(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateImageMirrorConf 接口更新镜像回源配置。详细的参数说明可参见 UpdateImageMirrorConf 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateImageMirrorConfDemo() { try { const Client = 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", // 下载图片的协议,取值为:http、https。 Schema: "https", // 带权重回源域名。key 为 String 类型,代表镜像回源域名;value 为 Integer 类型,代表域名权重。 Hosts: { "www.pic1.com": 95, "www.pic2.com": 5, }, // 镜像源 URI,其中图片名用 %s 占位符替代,比如/obj/%s。 Source: "/obj/%s", // 镜像站 Origin: {}, }; const res = await Client.UpdateImageMirrorConf(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateImageUploadOverwrite 接口更新重名覆盖上传配置。详细的参数说明可参见 UpdateImageUploadOverwrite 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateImageUploadOverwriteDemo() { try { const Client = 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,具体请参考[GetAllImageServices](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "7f****3", // 是否开启重名覆盖上传,取值如下所示: // <li> true:开启 </li> // <li> false:关闭 </li> UploadOverwrite: true, }; const res = await Client.UpdateImageUploadOverwrite(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateStorageRules 接口更新服务存储策略。详细的参数说明可参见 UpdateStorageRules 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateStorageRulesDemo() { try { const Client = 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: "7s**0l", // 更新后的存储降冷策略 StorageRules: [ { // 文件前缀。例如设置为 prefix 后,规则将只对名称以 prefix 开头的存储资源生效。输入规则如下: // <li> 不能以正斜线(/)或者反斜线()开头; </li> // <li> 不支持使用正则表达式匹配前缀; </li> // <li> 长度为 1~1024 个字符。 </li> Prefix: "prefix", // 策略类型,固定取值 Upload,表示按上传时间。 Event: "upload", // 最新版本文件的策略天数,取值范围为 [1,365],单位为天。按照 Event 事件 Day 天后执行 Action 事件,即当匹配文件的上传时间符合指定天数后,自动按照处理策略对资源进行处理。 Day: 30, // 最新版本文件在策略命中后需要执行的操作,取值如下所示: // <li> DELETE:删除文件 </li> // <li> IA:文件转低频存储 </li> // <li> ARCHIVE:文件转归档存储 </li> // <li> COLD_ARCHIVE:文件转冷归档存储 </li> Action: "IA", // 是否启用策略,取值如下所示: // <li> true:是 </li> // <li> false:否 </li> Enable: true, // 历史版本文件在策略命中后需要执行的操作,取值如下所示: // <li> DELETE:删除文件 </li> // <li> IA:文件转低频存储 </li> // <li> ARCHIVE:文件转归档存储 </li> // <li> COLD_ARCHIVE:文件转冷归档存储 </li> NonCurrentAction: "IA", // 历史版本文件的策略天数,取值范围为 [1,365],单位为天。按照 Event 事件 NonCurrentDay 天后执行 NonCurrentAction 事件,即当匹配历史版本文件的上传时间符合指定天数后,自动按照处理策略对历史版本资源进行处理。 NonCurrentDay: 30, }, ], }; const res = await Client.UpdateStorageRules(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateResEventRule 接口更新事件通知配置。详细的参数说明可参见 UpdateResEventRule 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateResEventRuleDemo() { try { const Client = 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: "hj9**102", // 事件通知规则 EventRules: [ { // 事件类型。取值如下所示: // <li> Upload:上传文件 </li> // <li> Delete:删除文件 </li> // <li> Mirror:镜像回源 </li> // <li> Migrate:数据迁移 </li> // <li> OffTrans:离线转码(素材托管服务配置无效) </li> // <li> TplStore:模板持久化存储(素材托管服务配置无效) </li> EventType: ["upload"], // 匹配规则的正则表达式。仅当资源的 StoreKey 匹配该正则表达式时触发事件通知。缺省情况下表示匹配所有资源。 MatchRule: "test.png\b", // 回调 URL,以 http:// 或 https:// 开头,需满足公网可访问。当事件触发时,会向该 URL 发送 HTTP POST 请求,body 为具体的事件信息。具体回调参数详见回调内容。 CallbackUrl: "https://a.callback.com", // 规则启用状态,取值如下所示: // <li> true:开启 </li> // <li> false:关闭 </li> Enable: true, }, ], }; const res = await Client.UpdateResEventRule(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateImageObjectAccess 接口更新源地址访问配置。详细的参数说明可参见 UpdateImageObjectAccess 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateImageObjectAccessDemo() { try { const Client = 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: "9jh**b2d", // 是否开启源地址访问,取值如下所示: // * true:开启源地址访问 // * false:关闭源地址访问 ObjectAccess: false, }; const res = await Client.UpdateImageObjectAccess(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateImageAuthKey 接口更新主备鉴权 Key。详细的参数说明可参见 UpdateImageAuthKey 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateImageAuthKeyDemo() { try { const Client = 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: "2y***s2", // 主鉴权 key,长度为 8-32 字节,为空则不更新主鉴权值。 PrimaryKey: "899z09z***121u2e9w", // 备鉴权 key,长度为 8-32 字节,为空则不更新备鉴权值。 SecondaryKey: "030fwe8***j9wqhiqs", }; const res = await Client.UpdateImageAuthKey(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetImageAuthKey 接口获取主备鉴权 Key。详细的参数说明可参见 GetImageAuthKey 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageAuthKeyDemo() { try { const Client = 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: "y7****w7", }; const res = await Client.GetImageAuthKey(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetImageService 接口获取单个服务信息。详细的参数说明可参见 GetImageService 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageServiceDemo() { try { const Client = 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: "90**1h", }; const res = await Client.GetImageService(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetAllImageServices 接口获取所有服务信息。详细的参数说明可参见 GetAllImageServices 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetAllImageServicesDemo() { try { const Client = 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 中包含该字符串的服务。 SearchPtn: "test", }; const res = await Client.GetAllImageServices(requestParam); console.log("res", res); } catch (err) { console.error(err); } }