0

我一直在尝试将文件上传到 s3 存储桶。但是该文件永远不会公开供查看。我必须手动将存储桶中的文件/文件夹公开(每次上传)才能查看。

有没有办法上传具有默认权限的Android文件(位图)以供查看。如果可能的话,我更愿意以编程方式执行此操作。我检查了 s3 文档,找不到任何有用的东西。

4

2 回答 2

10

是的,对于那些使用TransferUtility的人来说,使用以下方法在 android 中使用 TransferUtility上传任何文件以形成公共可读形式是非常容易的,

transferUtility.upload(String bucketName,String key,File file,CannedAccessControlList cannedAcl)

例子:

transferUtility.upload("MY_BUCKET_NAME","FileName",your_file,CannedAccessControlList.PublicRead);
于 2016-10-07T07:18:06.857 回答
5

要默认公开您存储桶中的所有对象,请查看此问题此问题的答案。

要在通过 Android 上传文件时为每个文件指定公共访问权限,请将 ACL 设置为PutObjectRequest

PutObjectRequest putObjectRequest = new PutObjectRequest()
    .withCannedAcl(CannedAccessControlList.PublicRead)

此时您似乎无法一步设置 ACL TransferUtilityhttps ://github.com/aws/aws-sdk-android/issues/63

因此,通过上传文件后,TransferUtility您需要执行以下操作:

s3client.setObjectAcl(bucketName, keyName, CannedAccessControlList.PublicRead);
于 2016-03-24T02:19:05.067 回答