如何使用公共权限将Android文件上传到S3存储桶

时间:2016-03-24 01:35:41

标签: android amazon-web-services amazon-s3 awss3transferutility

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

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

2 个答案:

答案 0 :(得分:10)

是的,对于那些使用 TransferUtility 的人来说,这很容易, 使用以下方法在Android中使用TransferUtility上传公共可读表单的任何文件,

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

示例:

transferUtility.upload("MY_BUCKET_NAME","FileName",your_file,CannedAccessControlList.PublicRead);

答案 1 :(得分:5)

要默认情况下公开您广告系列中的所有对象,请查看this questionthis question的答案。

要在通过Android上传每个文件时为每个文件指定公共访问权限,请在$qb->select('m.MAINCAT, i.IMAGE_NAME, gl.GROUP_LVL_ID, gl.PARENT_LVL_ID ... ')上设置ACL,如下所示:

PutObjectRequest

目前看来您可以使用PutObjectRequest putObjectRequest = new PutObjectRequest() .withCannedAcl(CannedAccessControlList.PublicRead) 一步设置ACL:https://github.com/aws/aws-sdk-android/issues/63

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

TransferUtility