令人困惑的 s3 存储桶策略上传问题

confusing s3 bucket policy upload issue

我希望我的应用程序能够将对象放入 s3 存储桶中,并且我希望 public 能够读取这些对象。出于某种原因,除非我关闭了阻止所有 public 访问权限,否则上传无法正常进行。日志显示此错误:Aws::S3::Errors::AccessDenied

My Block public 访问设置如下所示:

我的存储桶策略如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GetPhoto",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::site-public/photo/*"
        }
    ]

public 访问设置说它们不会 阻止存储桶策略,但该功能仍被阻止。为什么?

您似乎需要能够使用 public-read ACL 选择性地使对象 public 可读,因此您需要禁用与 Public 访问相关的阻止设置到 ACL。