我一直在尝试将文件上传到 s3 存储桶。但是该文件永远不会公开供查看。我必须手动将存储桶中的文件/文件夹公开(每次上传)才能查看。
有没有办法上传具有默认权限的Android文件(位图)以供查看。如果可能的话,我更愿意以编程方式执行此操作。我检查了 s3 文档,找不到任何有用的东西。
我一直在尝试将文件上传到 s3 存储桶。但是该文件永远不会公开供查看。我必须手动将存储桶中的文件/文件夹公开(每次上传)才能查看。
有没有办法上传具有默认权限的Android文件(位图)以供查看。如果可能的话,我更愿意以编程方式执行此操作。我检查了 s3 文档,找不到任何有用的东西。
是的,对于那些使用TransferUtility的人来说,使用以下方法在 android 中使用 TransferUtility上传任何文件以形成公共可读形式是非常容易的,
transferUtility.upload(String bucketName,String key,File file,CannedAccessControlList cannedAcl)
例子:
transferUtility.upload("MY_BUCKET_NAME","FileName",your_file,CannedAccessControlList.PublicRead);
要默认公开您存储桶中的所有对象,请查看此问题或此问题的答案。
要在通过 Android 上传文件时为每个文件指定公共访问权限,请将 ACL 设置为PutObjectRequest
:
PutObjectRequest putObjectRequest = new PutObjectRequest()
.withCannedAcl(CannedAccessControlList.PublicRead)
此时您似乎无法一步设置 ACL TransferUtility
:https ://github.com/aws/aws-sdk-android/issues/63
因此,通过上传文件后,TransferUtility
您需要执行以下操作:
s3client.setObjectAcl(bucketName, keyName, CannedAccessControlList.PublicRead);