访问权限分类
桶的访问权限(ACL)有以下三类:
访问权限 | 描述 | 访问权限值 |
私有 | 桶的拥有者和授权用户有该桶内的文件的读写权限,其他用户没有权限操作该桶内的文件。 | Private |
公共读 | 桶的拥有者和授权用户有该桶内的文件的读写权限,其他用户只有该桶的读权限。请谨慎使用该权限。 说明: 桶权限为公共读时,其他用户没有对该桶内文件的读权限,若想要设置桶内文件的读权限,请通过对象ACL或桶策略进行配置。 | PublicRead |
公共读写 | 所有用户都有该桶内的文件的读写权限。请谨慎使用该权限。 | PublicReadWrite |
桶ACL权限说明:
权限 | 说明 |
READ | 允许被授权者列出存储桶中的对象。 |
WRITE | 允许被授权者创建,覆盖和删除存储桶中的任何对象。 |
设置桶权限
以下代码用于设置桶的访问权限:
public void testSetBucketAcl() { try { s3.setBucketAcl(BUCKET_NAME,CannedAccessControlList.PublicRead); } catch (AmazonS3Exception e) { System.out.print("Set bucket acl faild, err :" + e); } } |
以下代码用于通过桶策略设置其他用户对桶内文件的读权限:
public void testSetBucketPolicy() { String bucketPolicy = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_NAME + "/*\"]}]}"; try { s3.setBucketPolicy(BUCKET_NAME, bucketPolicy); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); } } |