向拥有Amazon S3上传的所有人授予权限

时间:2015-11-09 16:38:33

标签: android amazon-s3

使用TransferUtility for Amazon S3上传文件后,我无法使用该文件。

Request failed 403: Forbidden

当我去我的水桶并查看右边的权限时,它只显示我。 当我添加所有人时,我可以毫无问题地访问该文件。

我正在寻找一种在上传时授予权限的方法,但可以为Android找到一个。

我找到了C#的答案,这让我想到了这个:

CannedAccessControlList cannedAccessControlList = CannedAccessControlList.BucketOwnerFullControl;

但我不知道在哪里添加..

2 个答案:

答案 0 :(得分:0)

最简单的方法是定义一个Bucket Policy,授予对存储桶或存储桶中的路径的公共访问权限。这样,您就不需要为每个单独的对象指定权限。

请参阅:Using Bucket Policies and User Policies

例如,此存储桶策略允许公共访问存储在uploads路径中的任何对象:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/uploads/*"]
    }
  ]
}

答案 1 :(得分:0)

transferManager.upload(new putObjectRequest(“bucket name”,“file name”,“file path object”)。withCannedAcl(CannedAccessControlList.PublicRead));