S3-上传100%图片后访问被拒绝

时间:2018-11-23 15:23:23

标签: reactjs amazon-web-services amazon-s3

这是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用户具有完全访问权限

Full Access

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。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

我发现了错误。该错误与我有关ACL的公共访问设置有关。我正在标记阻止新的公共ACL并上传公共对象,而不是False。