Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在amazon s3中为通过PutObjectRequest上传的对象授予读取权限_Java_Amazon S3_Amazon Web Services - Fatal编程技术网

Java 在amazon s3中为通过PutObjectRequest上传的对象授予读取权限

Java 在amazon s3中为通过PutObjectRequest上传的对象授予读取权限,java,amazon-s3,amazon-web-services,Java,Amazon S3,Amazon Web Services,我正在通过java应用程序将文本文件上传到Amazon s3 bucket。我想为每个人设置该文件的读取权限。有人知道怎么做吗?或者告诉我一些合适的资源?您可以创建一个bucket策略,使所有资源(或与通配符匹配的资源)都可用 单击aws S3控制台上的bucket属性,并将bucket策略编辑为如下内容: { "Version": "2008-10-17", "Statement": [ { "Sid": "auniqueid",

我正在通过java应用程序将文本文件上传到Amazon s3 bucket。我想为每个人设置该文件的读取权限。有人知道怎么做吗?或者告诉我一些合适的资源?

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

单击aws S3控制台上的bucket属性,并将bucket策略编辑为如下内容:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "auniqueid",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
    ]
}
其中,
Resource
参数中的
bucket
是您的bucket名称

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

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

我在寻找JavaAPI代码。这个很有魅力。谢谢。对于.Net用户来说,确切的行应该是
por.CannedACL=S3CannedACL.PublicRead效果字段中有一个输入错误,它应该是“允许”而不是“允许”