javascript - S3 使用 aws-sdk v3 为 PutObject 命令预签名 url 提供 SignatureDoesNotMatch 错误

标签 javascript node.js amazon-s3 aws-sdk aws-sdk-nodejs

我的 Amazon S3 存储桶运行良好,直到我决定将我的 aws sdk 从版本 v2 更新到模块化 v3。
我能够使用 sdk 以编程方式上传文件,但我无法使用它生成的预签名 url 上传文件。

      const { getSignedUrl } = require('@aws-sdk/s3-request-presigner');
      const { S3Client, , PutObjectCommand } = require('@aws-sdk/client-s3');
      const s3Client = S3Client({ region: 'us-east-2'});
      const params = {
        Bucket: '<bucket>',
        Key: '1234567890.jpg',
        ACL: 'private',
        ContentType: 'image/jpg',
        // Body: '<base64 encoded image content>'
      };
      const command = new PutObjectCommand(params);
      // await s3Client.send(command); // works fine
      const signedUrl = await getSignedUrl(s3Client, command); // generated signed url fails to upload image
当我尝试使用生成的预签名 url 发出 PUT 请求时,我收到 403 HTTP 错误代码和消息 SignatureDoesNotMatch。
请指导我了解我可能遗漏的内容,因为我已经为此工作了两天。

最佳答案

你有没有试过这个;
https://www.digitalocean.com/community/questions/signature-does-not-match-when-putting-to-presigned-spaces-upload-url

这是更多详细信息的链接;
https://www.msp360.com/resources/blog/s3-pre-signed-url-guide/

关于javascript - S3 使用 aws-sdk v3 为 PutObject 命令预签名 url 提供 SignatureDoesNotMatch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66784060/

相关文章:

javascript - 删除后面代码中的 onClick 属性

javascript - 如何检测设备是否可以使用 Javascript 播放杜比全景声

javascript - 未知的身份验证策略 : hapi-auth-bearer-simple

node.js - Websockets - 自定义排队系统有意义吗?

python - Django 存储 AWS_QUERYSTRING_AUTH 不工作

javascript - 动态生成缩略图到 bxslider

javascript - GAS/Javascript 在汇总数字时给出错误的数字

node.js - 无法在 Windows 上的 Node 容器中运行示例 Express 应用程序

ruby-on-rails - Amazon S3 和 Cloudfront 不会即时进行 gzip

javascript - 未找到 Amazon S3 镜像。必须推迟