Bucket权限控制
更新时间:2022-10-25
设置Bucket的访问权限
基本流程
- 创建BOSClient类的实例。
- 执行BOSClient.setBucketAcl()方法。
- setBucketAcl()无返回值,设置失败时会抛出异常。
示例代码
                Java
                
            
            1// 设置Bucket访问权限
2client.setBucketAcl(<BucketName>, CannedAccessControlList.Private);说明:CannedAccessControlList是枚举类型,包含三个值:
Private、PublicRead、PublicReadWrite,它们分别对应相关权限。具体内容可以参考《BOS API文档 使用CannedAcl方式的权限控制》。
完整示例
                Java
                
            
            1import org.json.JSONException;
2import android.app.Activity;
3import android.os.Bundle;
4import com.baidubce.BceClientException;
5import com.baidubce.BceServiceException;
6import com.baidubce.auth.DefaultBceCredentials;
7import com.baidubce.development.R;
8import com.baidubce.services.bos.BosClient;
9import com.baidubce.services.bos.BosClientConfiguration;
10import com.baidubce.services.bos.model.CannedAccessControlList;
11    
12public class ExampleActivity extends Activity {
13
14  private String bucketName = <BucketName>;
15
16  @Override
17  protected void onCreate(Bundle savedInstanceState) {
18    super.onCreate(savedInstanceState);
19    setContentView(R.layout.activity_main);
20    new Thread(new Runnable() {
21        @Override
22        public void run() {
23            try {
24                BosClientConfiguration config = new BosClientConfiguration();
25                config.setCredentials(new DefaultBceCredentials(<AccessKeyID>, <SecretAccessKey>));
26                config.setEndpoint(<EndPoint>);
27                BosClient client = new BosClient(config);
28
29                // 设置Bucket访问权限
30                client.setBucketAcl(<BucketName>, CannedAccessControlList.Private);   //指定Bucket名称,并设置Bucket权限为Private
31
32            } catch (BceServiceException e) {
33                System.out.println("Error ErrorCode: " + e.getErrorCode());
34                System.out.println("Error RequestId: " + e.getRequestId());
35                System.out.println("Error StatusCode: " + e.getStatusCode());
36                System.out.println("Error Message: " + e.getMessage());
37                System.out.println("Error ErrorType: " + e.getErrorType());
38            } catch (BceClientException e) {
39                System.out.println("Error Message: " + e.getMessage());
40            } catch (JSONException e) {
41                // TODO Auto-generated catch block
42                e.printStackTrace();
43            }
44        }
45    }).start();
46
47}
48}设置指定用户对Bucket的访问权限
基本流程
- 创建BOSClient类的实例。
- 执行BOSClient.setBucketAcl()方法,您需要创建一个SetBucketAclRequest的实例来提供上述信息。
- setBucketAcl()无返回值,设置失败时会抛出异常。
示例代码
                Java
                
            
            1List<Grant> grants = new ArrayList<Grant>();
2List<Grantee> grantee = new ArrayList<Grantee>();
3List<Permission> permission = new ArrayList<Permission>();
4
5//授权给用户
6grantee.add(new Grantee(<UserID>);
7
8//设置权限
9permission.add(Permission.READ);
10grants.add(new Grant().withGrantee(grantee).withPermission(permission));
11
12//封装成request	
13SetBucketAclRequest request = new SetBucketAclRequest(<BucketName>, grants);
14
15//设置bucket的访问权限
16client.setBucketAcl(request);注意:Permission中的权限设置包含三个值:
READ、WRITE、FULL_CONTROL,它们分别对应相关权限。具体内容可以参考《BOS API文档 上传ACL文件方式的权限控制》。
完整示例
                Java
                
            
            1import java.util.ArrayList; 
2import java.util.List;
3import org.json.JSONException;
4import android.app.Activity;
5import android.os.Bundle;
6import com.baidubce.BceClientException;
7import com.baidubce.BceServiceException;
8import com.baidubce.auth.DefaultBceCredentials;
9import com.baidubce.development.R;
10import com.baidubce.services.bos.BosClient;
11import com.baidubce.services.bos.BosClientConfiguration;
12import com.baidubce.services.bos.model.Grant;
13import com.baidubce.services.bos.model.Grantee;
14import com.baidubce.services.bos.model.Permission;
15import com.baidubce.services.bos.model.SetBucketAclRequest;
16    
17public class ExampleActivity extends Activity {
18
19  private String bucketName = <BucektName>;
20  List<Grant> grants = new ArrayList<Grant>();
21  List<Grantee> grantee = new ArrayList<Grantee>();
22  List<Permission> permission = new ArrayList<Permission>();
23
24  @Override
25  protected void onCreate(Bundle savedInstanceState) {
26    super.onCreate(savedInstanceState);
27    setContentView(R.layout.activity_main);
28    new Thread(new Runnable() {
29        @Override
30        public void run() {
31            try {
32                BosClientConfiguration config = new BosClientConfiguration();
33                config.setCredentials(new DefaultBceCredentials(<AccessKeyID>, <SecretAccessKey>));
34                config.setEndpoint(<EndPoint>);
35                BosClient client = new BosClient(config);
36
37                //授权给特定用户
38                grantee.add(new Grantee("UserId_1"));
39                grantee.add(new Grantee("UserId_2"));
40
41                //授权给Everyone
42                grantee.add(new Grantee("*"));
43
44                //设置权限
45                permission.add(Permission.READ);
46                permission.add(Permission.WRITE);
47
48                grants.add(new Grant().withGrantee(grantee).withPermission(permission));
49
50                //封装request
51                SetBucketAclRequest request = new SetBucketAclRequest(<BucketName>, grants);
52
53                //设置bucket的访问权限
54                client.setBucketAcl(request);
55
56            } catch (BceServiceException e) {
57                System.out.println("Error ErrorCode: " + e.getErrorCode());
58                System.out.println("Error RequestId: " + e.getRequestId());
59                System.out.println("Error StatusCode: " + e.getStatusCode());
60                System.out.println("Error Message: " + e.getMessage());
61                System.out.println("Error ErrorType: " + e.getErrorType());
62            } catch (BceClientException e) {
63                System.out.println("Error Message: " + e.getMessage());
64            } catch (JSONException e) {
65                // TODO Auto-generated catch block
66                e.printStackTrace();
67            } 
68        }
69    }).start();
70
71}
72}