由于 AK/SK 信息存放在客户端有泄漏风险,在客户端上传的过程中,通常需要服务端配合生成上传签名或凭证,下发给客户端。您可参考以下方法生成临时 Token 用于客户端上传。
服务端根据账号的 AK/SK 信息和相关的 policy 生成临时的上传密钥下发给客户端,客户端根据临时密钥和上传参数自行计算签名并发送 OpenAPI 请求。
调用接口前,请先完成 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);
返回示例如下所示:
// uploadToken 示例如下: { CurrentTime: 'xxx', ExpiredTime: 'xxx', SessionToken: 'xxx', AccessKeyId: 'tempAccessKey', SecretAccessKey: 'tempSecretKey' }