gpt4 book ai didi

node.js - nodejs 客户端 s3 getSignedUrl 提供使用 AWS KMS 托管 key 指定服务器端加密的请求需要 AWS 签名版本 4

转载 作者:行者123 更新时间:2023-12-04 17:32:10 25 4
gpt4 key购买 nike

我正在使用以下代码为 s3 存储桶生成一个预先签名的 url

  const presignedUrl = s3.getSignedUrl('getObject', {
Bucket: config.parsedResumeDestination,
Key: tmpKey,
Expires: 60 * 60 * 60 // 1 hour
});

但是,当我在浏览器上复制过去生成的 url 时,我收到以下错误
Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4
我看到了以下解决方案 How to generate 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
})
构建 AWS 服务对象时有很多选项,它们大多是通用的:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#constructor-property

关于node.js - nodejs 客户端 s3 getSignedUrl 提供使用 AWS KMS 托管 key 指定服务器端加密的请求需要 AWS 签名版本 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58684865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com