这是S3上的CORS配置
<CORSConfiguration>
<CORSRule xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
这是存储桶策略
{
"Id": "<policyID>",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "<stm>",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::<bucket-name>/*",
"Principal": {
"AWS": [
"arn:aws:iam::<id>:user/<name>"
]
}
}
]
}
我的IAM用户具有完全访问权限
PUT之前的Option请求返回200,因此我假设CORS没有配置错误。
向签名URL上载用于上传图像的PUT请求返回错误
图片开始上传,进度如下:
Upload progress: 56% Uploading
Upload progress: 75% Uploading
Upload progress: 84% Uploading
Upload progress: 94% Uploading
Upload progress: 100% Finalizing
Upload error: Upload error: 403
来自亚马逊的响应错误:
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>REQid</RequestId><HostId>SomeID</HostId></Error>
在100%完成后,它会引发403错误。 我正在使用react-s3-uploader将文件上传到S3。
我在做什么错了?
答案 0 :(得分:0)
我发现了错误。该错误与我有关ACL的公共访问设置有关。我正在标记阻止新的公共ACL并上传公共对象,而不是False。