在Amazon S3中将在AWS3存储桶中创建的文件夹设为公共或私有

时间:2018-07-11 11:11:54

标签: amazon-web-services spring-boot directory public bucket

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

1 个答案:

答案 0 :(得分:0)

我假设您正在从AWS控制台尝试。在这种情况下,只需右键单击要公开的文件夹。右键单击时,应有一个选项“ make-public”,该选项应将其公开。

使用Java编程: 如果要制作文件夹(这是S3技术术语的关键),您需要使用“罐头ACL”。

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

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

正如您在评论中提到的那样,每个人都应具有对公用文件夹的读取访问权限,在这种情况下,应具有一个存储桶级策略,该策略将授予所有人的“公用”命名文件夹访问权限。

政策示例: 示例:

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

其中存储桶名称为“ test-b11”,并且公用文件夹为“ public”

在控制台中,单击存储桶,转到“权限”标签,然后在需要上传策略的位置单击“存储桶策略”。