S3公共只读文件,但私有目录

Dus*_*tin 3 amazon-s3 amazon-web-services

我在一个带有~7000个子目录的存储桶下有一个子目录.然后每个子目录可能有1-100个文件.

我需要将文件公开,但我不希望任何人能够看到子目录列表,甚至是给定目录下的文件列表.

我知道我可以将文件的ACL设置为只读,然后我想我可以将目录设置为私有.但对于这么多文件,我希望有一个更简单的解决方案?

jar*_*mod 9

要允许每个人获取对象,但不允许任何人列出对象,您可以应用存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::mybucket/myfolder1/*",
                "arn:aws:s3:::mybucket/myfolder2/*"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

请注意,发现对象URL的任何人都可以检索该对象.