s3预签名的URL分段表单数据上传err:签名不匹配

时间:2019-02-12 23:09:25

标签: amazon-web-services amazon-s3 multipartform-data pre-signed-url

我正在从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
        })

1 个答案:

答案 0 :(得分:0)

您在签名中使用的任何ACL值也都必须以'x-amz-acl': '**-**-**'的形式发送到请求标头中。

还要注意,S3 PUT并不期望FormData -它期望body仅包含对象的原始字节 。这不是导致错误的原因,但是,一旦纠正了签名错误,就需要更改它,以获取有效且可用的上载。