文档中心 > 设置桶的访问权限
设置桶的访问权限

最近更新时间:2022-09-03

访问权限分类

桶的访问权限(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());
  }
}