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

slo*_*kar 5 java amazon-s3 amazon-web-services

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

lst*_*ern 30

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

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

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

bucketResource参数是你斗的名字.

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

PutObjectRequest por = new PutObjectRequest(bucketName, key, file);
por.setCannedAcl(CannedAccessControlList.PublicRead);
s3.putObject(por);
Run Code Online (Sandbox Code Playgroud)