通过亚马逊s3中的PutObjectRequest提供对象的读取权限

时间:2012-11-09 00:36:57

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

我通过java应用程序将文本文件上传到Amazon s3存储桶。我想为每个人设置该文件的读取权限。有谁知道如何做到这一点 ?或指导我一些适当的资源?

1 个答案:

答案 0 :(得分:27)

您可以创建一个存储桶策略,使所有资源(或匹配通配符的资源)可用。

在aws S3控制台上单击您的存储桶属性,然后将存储桶策略编辑为:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "auniqueid",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
    ]
}

bucket参数中的Resource是您的广告位名称。

您还可以通过Java API为特定文件设置公共权限:

PutObjectRequest por = new PutObjectRequest(bucketName, key, file);
por.setCannedAcl(CannedAccessControlList.PublicRead);
s3.putObject(por);