使在 aws3 存储桶 public 中创建的文件夹或在 Amazon S3 中私有

Make folders created in aws3 bucket public or private in Amazon S3

我已经创建了 aws3 存储桶并成功将文件上传到其中。我想在存储桶中创建两个文件夹(一个文件夹用于存储 public 文件,另一个文件夹用于存储私人文件)。如何设置文件夹访问私有或 public。

我假设您正在从 AWS 控制台尝试。在这种情况下,只需右键单击您要设为 public 的文件夹。右键单击,应该有一个选项 "make-public",应该是 public.

以编程方式使用 Java: 以防万一,要制作文件夹(这是 S3 技术术语中的关键),您需要使用“Canned ACL。

因此,您的代码应如下所示: s3client.putObject(...).withCannedAcl(CannedAccessControlList.PublicRead)

参见参考 https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl

正如您在评论中提到的,每个人都应该拥有对 public 文件夹的读取权限,在这种情况下,有一个存储桶级别的策略可以向每个人授予 "public" 命名文件夹访问权限。

政策示例: 示例:

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

其中存储桶名称是 "test-b11" 并且具有 public 文件夹作为 "public"

从控制台,单击一个存储桶,转到 "permissions" 的选项卡,然后单击需要上传策略的 "Bucket policy"。