阅读本文,您可以获取 Node SDK 资源管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Node SDK 的安装及初始化操作。
本节为您介绍资源管理相关接口的功能和调用示例。
您可以调用 ApplyImageUpload 接口获取文件上传地址和凭证。详细的参数说明可参见 ApplyImageUpload 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function ApplyImageUploadDemo() { 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: "WMK**UXe", // 一次上传会话 Key。 // note: // 本接口上一次请求的SessionKey,可在重试时带上,作为服务端的再次选路时的一个参考。 SessionKey: "eyJh**In0=", // 上传文件的数量,将决定下发的 StoreUri 的数量,取值范围为[1,10],默认为 1。 UploadNum: 1, // 指定的上传文件路径。 // * 指定Prefix时,下发的存储 Key 为:Prefix/{随机Key}{FileExtension},其中Prefix + FileExtension最大长度限制为 145 个字节。 // * 不支持以/开头或结尾,不支持/连续出现。 // note: // 仅当未指定StoreKeys时生效。 Prefix: "a/b", // 文件扩展名(如:.java, .txt, .go 等),最大长度限制为 8 个字节。 // note: // 仅当未指定StoreKeys时生效。 FileExtension: "png", // 是否开启重名文件覆盖上传,取值如下所示: // <li> true:开启 </li> // <li> false:(默认)关闭 </li> // warning // 在指定 Overwrite 为 true 前,请确保您指定的 ServiceId 对应服务已[开启了覆盖上传](https://www.volcengine.com/docs/508/1119912)能力。 Overwrite: false, }; const res = await imagexService.ApplyImageUpload(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 CommitImageUpload 接口确认上传并上报上传结果。详细的参数说明可参见 CommitImageUpload 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function CommitImageUploadDemo() { 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: "WM***Xed", // 是否返回图片meta信息。默认 false。 // * true:不返回图片 meta 信息。 // * false:获取图片 meta 信息并返回对应 meta 信息。 // * 其中若 meta 获取超时或失败,接口返回成功,但对应 meta 信息将为空。 // * 如果强依赖 meta 请参考[图片Meta信息](https://www.volcengine.com/docs/508/64085)获取。 SkipMeta: false, }; const res = await imagexService.CommitImageUpload(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 DeleteImageUploadFiles 接口删除服务下多个文件。详细的参数说明可参见 DeleteImageUploadFiles 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function DeleteImageUploadFilesDemo() { 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", // 文件 URI 列表,最多传 1000 个。您可以通过调用[获取服务下的上传文件](https://www.volcengine.com/docs/508/9392)来获取所需的文件 URI。 StoreUris: ["uri1", "uri2"], }; const res = await imagexService.DeleteImageUploadFiles(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 PreviewImageUploadFile 接口预览服务下的文件。详细的参数说明可参见 PreviewImageUploadFile 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function PreviewImageUploadFileDemo() { 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", // 文件 Uri。 // <li> 您可以在 veImageX 控制台 [资源管理](https://console.volcengine.com/imagex/resource_manage/)页面,在已上传文件的名称列获取资源 Uri。 </li> // <li> 您也可以通过 OpenAPI 的方式获取Uri,具体请参考[文件上传完成上报](https://www.volcengine.com/docs/508/9398)。 </li> StoreUri: "uri1", }; const res = await imagexService.PreviewImageUploadFile(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetImageStorageFiles 接口列举服务下的文件。详细的参数说明可参见 GetImageStorageFiles 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageStorageFilesDemo() { 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**0o", // 上一次列举返回的位置标记,作为本次列举的起点信息。默认值为空。 Marker: "eyJjIjowLCJrIjoiMDAwMDAyLmljbyJ9", // 一次查询列出的文件信息条目数,取值范围为[1,1000]。默认值为 10。 Limit: 1000, // 指定需要查询文件的前缀,只有资源名匹配该前缀的文件会被列出。缺省时将返回所有文件信息。 // 例如,一个存储服务中有三个文件,分别为 Example/imagex.png、Example/mov/a.avis 和 Example/mov/b.avis。若指定 Prefix 取值 Example/且指定 Delimiter 取值 /:则返回 Example/imagex.png,并在 CommonPrefix 里返回 Example/mov/。 Prefix: "Example/", // 指定目录分隔符,默认值为 /。所有文件名字包含指定的前缀,第一次出现 Delimiter 字符之间的文件作为一组元素(即 CommonPrefixe)。 Delimiter: "/", }; const res = await imagexService.GetImageStorageFiles(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateImageResourceStatus 接口更新资源封禁/解封状态。详细的参数说明可参见 UpdateImageResourceStatus 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateImageResourceStatusDemo() { 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,具体请参考[GetAllImageServices](https://www.volcengine.com/docs/508/9360)。 </li> ServiceId: "serviceid", // 资源的封禁状态,取值如下所示: // <li> disable:禁用。禁用状态,您无法访问该资源。 </li> // <li> enable:启用。启用状态,您可正常访问该资源。 </li> Status: "disable/enable", // 待修改封禁状态的资源存储 Key(不携带 Bucket 信息),可在控制台资源管理页面查看。 ObjectName: "demo1.png", }; const res = await imagexService.UpdateImageResourceStatus(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 UpdateImageFileKey 接口重命名文件。详细的参数说明可参见 UpdateImageFileKey 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function UpdateImageFileKeyDemo() { 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", // 源文件名 OriKey: "bb6d0430d***7feac525023d52", // 重命名后的文件名 DstKey: "image", }; const res = await imagexService.UpdateImageFileKey(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetResourceURL 接口获取资源URL。详细的参数说明可参见 GetResourceURL 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetResourceURLDemo() { 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", // 域名。 // 您可以通过调用 OpenAPI [获取服务下所有域名](https://www.volcengine.com/docs/508/9379)查看 domain 返回值。 Domain: "example.test.com", // 图片资源 Uri。 // 您可以通过调用 OpenAPI [获取文件上传成功信息](https://www.volcengine.com/docs/508/9398)查看 ImageUri 返回值。 URI: "tos-i-xxxxx/test.png", // 模板名称。缺省情况下表示无模板处理图片。 // 您可以通过调用 OpenAPI [获取服务下所有图片模板](https://www.volcengine.com/docs/508/9386)里查看 TemplateName 返回值。 Tpl: "tplv-8h**9q-1-v**83", // 协议,默认为 http,隐私图片使用 https,公开图片支持取值 http 以及 https。 Proto: "https", // 创建模板时设置的图片输出格式,默认为 iamge,支持取值有: // <li> image:表示输出原格式; </li> // <li> 静图格式:png、jpeg、heic、avif、webp; </li> // <li> 动图格式:awebp、heif、avis。 </li> Format: "image", }; const res = await imagexService.GetResourceURL(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetImageUploadFiles 接口获取服务下的上传文件。详细的参数说明可参见 GetImageUploadFiles 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageUploadFilesDemo() { 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", // 获取文件个数,最大值为 100。 Limit: 100, // 分页标志。 Marker: 0, }; const res = await imagexService.GetImageUploadFiles(requestParam); console.log("res", res); } catch (err) { console.error(err); } }
您可以调用 GetImageUploadFile 接口获取服务下单个上传文件。详细的参数说明可参见 GetImageUploadFile 接口文档。
接口调用示例如下所示。
import { imagex } from "@volcengine/openapi"; export async function GetImageUploadFileDemo() { 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: "uk**ok", // 文件 Uri。 // <li> 您可以在 veImageX 控制台 [资源管理](https://console.volcengine.com/imagex/resource_manage/)页面,在已上传文件的名称列获取资源 Uri。 </li> // <li> 您也可以通过 OpenAPI 的方式获取Uri,具体请参考 [GetImageUploadFiles](https://www.volcengine.com/docs/508/9392)。 </li> StoreUri: "demo.png", }; const res = await imagexService.GetImageUploadFile(requestParam); console.log("res", res); } catch (err) { console.error(err); } }