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
Amazon s3 如何在AmazonS3中定义权限_Amazon S3 - Fatal编程技术网

Amazon s3 如何在AmazonS3中定义权限

Amazon s3 如何在AmazonS3中定义权限,amazon-s3,Amazon S3,我在amazon上有这样一个结构- (bucket name) MyImages --- (key) general ---- 1.jpg ---- 2.jpg 我已经使用S3 Firefox Organizer工具创建了密钥(general),并为所有用户设置了读取权限。现在,通过一个java程序,当我上传这个密钥内的图像时,我想将每个对象的权限设置为密钥拥有的权限。但这并没有发生,我必须编写一些额外的代码来设置每个对象的权限 AccessControlLi

我在amazon上有这样一个结构-

(bucket name) MyImages
  ---  (key) general
       ---- 1.jpg
       ---- 2.jpg
我已经使用S3 Firefox Organizer工具创建了密钥(general),并为所有用户设置了读取权限。现在,通过一个java程序,当我上传这个密钥内的图像时,我想将每个对象的权限设置为密钥拥有的权限。但这并没有发生,我必须编写一些额外的代码来设置每个对象的权限

AccessControlList acl = s3.getBucketAcl("MyImages");
// give everyone read access
acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);
s3.setObjectAcl("MyImages", "general/1.jpg", acl);

有没有办法摆脱上面的代码。为什么对象没有获得作为密钥或存储桶的权限

以下代码适用于我。用正在写入S3的文件对象替换要保存的文件

PutObjectRequest por = new PutObjectRequest("MyImages", "general/1.jpg", file_to_save);

o.setCannedAcl(CannedAccessControlList.PublicRead);

您还可以尝试使用Bucket策略使Bucket中的所有文件公开可用

可以对现有文件以及所有新文件应用权限

下面是一个使Bucket中的所有文件公开可用的Bucket策略示例:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "AllowPublicRead",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    }
  ]
}
下面是如何使用S3浏览器免费软件应用Bucket策略:

如果您想使用“浏览器”软件(如s3browser、s3fox或s3 browser for chrome)访问存储桶,您需要在s3的根目录上添加权限,如下所示

   {
           "Effect": "Allow",
           "Action": "s3:ListAllMyBuckets",
           "Resource": "arn:aws:s3:::*"
   }
给予

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