我使用以下代码生成 s3 存储桶的预签名 url
const presignedUrl = s3.getSignedUrl('getObject', {
Bucket: config.parsedResumeDestination,
Key: tmpKey,
Expires: 60 * 60 * 60 // 1 hour
});
Run Code Online (Sandbox Code Playgroud)
但是,当我在浏览器上复制生成的网址时,出现以下错误
Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4
我看到了以下解决方案How to generated AWS S3 pre-signed URL using Signature version 4,但是 aws 的 NodeJS 客户端似乎没有此属性。有人可以告诉我这里出了什么问题吗?
当您构造 s3 服务对象时,传入signatureVersion.
这是一种方法:
const AWS = require("aws-sdk");
const s3 = new AWS.S3({
signatureVersion: "v4",
...credentials
})
Run Code Online (Sandbox Code Playgroud)
构建 AWS 服务对象时有很多选项,而且它们大多是通用的: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#constructor-property
| 归档时间: |
|
| 查看次数: |
1973 次 |
| 最近记录: |