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