【问题标题】:S3 gives SignatureDoesNotMatch error for PutObject command pre-signed url using aws-sdk v3S3 使用 aws-sdk v3 为 PutObject 命令预签名 url 提供 SignatureDoesNotMatch 错误
【发布时间】:2021-06-21 08:11:54
【问题描述】:

在我决定将我的 aws sdk 从版本 v2 更新到模块化 v3 之前,我的 Amazon S3 存储桶工作正常。

我能够使用 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。 请指导我可能缺少什么,因为我已经为此工作了两天。

【问题讨论】:

  • 我面临同样的问题。有什么进展吗?

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


【解决方案1】:

你试过这个吗;
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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    相关资源
    最近更新 更多