【发布时间】:2022-01-14 16:52:57
【问题描述】:
我正在使用 AWS s3 node-sdk 将对象放入 KMS 加密存储桶中。我想获取对象的signedURL,所以我可以用它来提供文件作为浏览器下载。目前,我正在做以下事情:
const url = s3.getSignedUrl('getObject', {
Bucket: bucketName,
Key: fileName,
Expires: signedUrlExpireSeconds
})
我得到一个 url 作为响应。使用 URL,我在浏览器中收到以下错误
<Error>
<Code>InvalidArgument</Code>
<Message>
Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.
</Message>
<ArgumentName>Authorization</ArgumentName>
<ArgumentValue>null</ArgumentValue>
<RequestId>XXXXXXXXXXXXXXX</RequestId>
<HostId>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</HostId>
</Error>
我一直在寻找使用 AWS 签名版本 4 的文档,但没有找到任何线索。如何使用节点 sdk 获取此加密对象的签名 URL?
【问题讨论】:
标签: node.js amazon-web-services amazon-s3