如何使用 AWS S3 签名 url 从 Postman 上传文件?

Ani*_*aje 5 amazon-s3 amazon-web-services node.js pre-signed-url postman

我想实现以下目标 -
1. 生成签名 URL
2. 使用 Postman 上传文件 (image.jpg) 到 URL

我正在使用 AWS Node SDK 创建 URL,
以下是代码 -

const AWS = require('aws-sdk');

AWS.config.update({
    region: 'us-east-1'
});

const s3 = new AWS.S3();

var presignedPUTURL = s3.getSignedUrl('putObject', {
    Bucket: 'some-bucket',
    Key: 'test/image.jpg',
    Expires: 3600
});

console.log(presignedPUTURL);
Run Code Online (Sandbox Code Playgroud)

该代码创建了一个 URL,如 -

https://some-bucket.s3.amazonaws.com/test/image.jpg?AWSAccessKeyId=ABCDxxx&Expires=1572339646&Signature=someSignaturexxx
Run Code Online (Sandbox Code Playgroud)

这是邮递员的回复-

<Code>SignatureDoesNotMatch</Code>
    <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
Run Code Online (Sandbox Code Playgroud)

邮递员电话—— 在此处输入图片说明
-------------------------------------------------- ----------------------------- 在此处输入图片说明

我试过这个 -
https://medium.com/@aidan.hallett/securing-aws-s3-uploads-using-presigned-urls-aa821c13ae8d

我还尝试了各种组合,代码中的密钥和文件名的上传具有相同的名称,
不同的内容类型组合,
但没有运气。

Ahm*_*nna 4

邮差添加了隐藏标题。如果我删除Content-Type标头,Put请求将按预期工作。

在此输入图像描述