You need to enable JavaScript to run this app.
导航

生成上传凭证

最近更新时间2024.04.10 14:53:36

首次发布时间2024.04.10 14:53:36

由于 AK/SK 信息存放在客户端有泄漏风险,在客户端上传的过程中,通常需要服务端配合生成上传签名或凭证,下发给客户端。您可参考以下方法生成临时 Token 用于客户端上传

背景说明

服务端根据账号的 AK/SK 信息和相关的 policy 生成临时的上传密钥下发给客户端,客户端根据临时密钥和上传参数自行计算签名并发送 OpenAPI 请求。

  • 服务端仅生成临时密钥,具体签名计算过程在客户端进行;
  • OpenAPI 的所有请求参数均可参与签名过程;
  • 根据临时密钥无法反推出账号 AK/SK,泄漏风险低。

前提条件

调用接口前,请先完成 Node.js SDK 的安装及初始化操作。

生成临时上传密钥

const options = {
    serviceIds: ["serviceid"], // 仅允许上传到指定的服务ID,若无此限制,传递空数组即可
    expire: 60 * 60 * 1000, // 临时密钥过期时间(单位为毫秒),默认为1小时
    uploadOverwrite: true, // 开启重名覆盖上传
    uploadPolicy: {
      ContentTypeWhiteList: ["image/png"], // 设置允许上传的内容类型,此处以 PNG 图片为例
      ContentTypeBlackList: ["image/gif"], // 设置禁止上传的内容类型,此处以 GIF 图片为例
      FileSizeUpLimit: "100000", // 设置上传文件的大小上限,单位为字节(B)
      FileSizeBottomLimit: "500", // 设置上传文件的大小下限,单位为字节(B)
    },
}
const uploadToken = imagexService.GetUploadAuth(options);
console.log(uploadToken);

说明

  • 您可以在 veImageX 控制台 服务管理页面,在创建好的图片服务中获取服务 ID。
  • 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考获取所有服务信息

返回示例如下所示:

// uploadToken 示例如下:
{
  CurrentTime: 'xxx',
  ExpiredTime: 'xxx',
  SessionToken: 'xxx',
  AccessKeyId: 'tempAccessKey',
  SecretAccessKey: 'tempSecretKey'
}