我正在尝试根据本教程将文件上传到S3:
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html
我复制了html表单,并将“ Base64编码的策略字符串”,“签名值”更改为我的值,以及从2015年到2019年以及在“ http://sigv4examplebucket.s3.amazonaws.com/”中更改了X-Amz-Date用我的存储桶替换了sigv4examplebucket。
在服务器端(node.js),我在策略对象上调用Buffer.from(JSON.stringify(policy))
并使用以下代码创建签名:
var kDate = crypto.HmacSHA256("20190830T120000Z", "AWS4" + "MY_KEY");
var kRegion = crypto.HmacSHA256("us-east-1", kDate);
var kService = crypto.HmacSHA256("s3", kRegion);
var kSigning = crypto.HmacSHA256("aws4_request", kService);
return kSigning;
问题是我的网站给我一个错误:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
有没有办法找出问题所在?
此外,我没有在AWS S3上的购物篮中进行任何更改。我应该在那添加一些政策吗?