我正在从aws获取一个预签名的url,并使用它来请求(放置)一个zip文件。我得到的签名不匹配。
当获得预设的网址时:
const params = {
Bucket: myBucket,
Key: myKey,
Expires: 60*60,
ACL: '**-**-**',
ContentType: 'application/x-zip-compressed'};
在请求时:
const formData = new FormData();
formData.append('file', file);
formData.append('filename', file.name);
fetch(url, {
method: 'PUT',
headers: {
'Content-Type': 'application/x-zip-compressed',
},
body: formData
})
答案 0 :(得分:0)
您在签名中使用的任何ACL
值也都必须以'x-amz-acl': '**-**-**'
的形式发送到请求标头中。
还要注意,S3 PUT
并不期望FormData
-它期望body
仅包含对象的原始字节 。这不是导致错误的原因,但是,一旦纠正了签名错误,就需要更改它,以获取有效且可用的上载。