You need to enable JavaScript to run this app.
导航
资源管理
最近更新时间:2024.08.19 17:31:21首次发布时间:2024.06.04 15:40:25

阅读本文,您可以获取 Node SDK 资源管理的接口调用示例,实现快速开发。

说明

本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。

调用说明

  • 本文提供的接口调用示例均通过 AK 和 SK 初始化实例。
  • 接口的参数说明和错误码等信息可通过接口文档查看。

前提条件

调用接口前,请先完成 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);
  }
}

获取资源URL

您可以调用 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);
  }
}