s3 预签名 url 多部分表单数据上传错误:签名不匹配

2023-12-19

我从 aws 获取一个预签名的 url,并使用它来请求(PUT)一个 zip 文件。我得到签名不匹配。

获取预签名 url 时:

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
        })

任何ACL您在签名中使用的值也需要在请求标头中发送,如下所示'x-amz-acl': '**-**-**'.

另请注意,S3PUT不期望FormData——它期望body包含装有only对象的原始字节。这不是错误的原因,但是一旦您更正了签名错误,您也需要更改它,以获得有效、可用的上传。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

s3 预签名 url 多部分表单数据上传错误:签名不匹配 的相关文章

随机推荐