Bucket permission control
Updated at:2025-11-03
Set bucket access permissions
Basic workflow
- Instantiate the BOSClient class.
- Run the BOSClient.setBucketAcl() method.
- The setBucketAcl() method does not return any value. If the setting fails, an exception will be thrown.
Example code
Java
1// Set bucket access permission
2client.setBucketAcl(<BucketName>, CannedAccessControlList.Private);
Note: CannedAccessControlList an enumerated type and contains three values:
Private,PublicReadandPublicReadWrite, which correspond to relevant permissions respectively. For details, refer to BOS API Documentation - Permission Control Using CannedAcl.
Complete example
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 private String bucketName = <BucketName>;
14 @Override
15 protected void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.activity_main);
18 new Thread(new Runnable() {
19 @Override
20 public void run() {
21 try {
22 BosClientConfiguration config = new BosClientConfiguration();
23 config.setCredentials(new DefaultBceCredentials(<AccessKeyID>, <SecretAccessKey>));
24 config.setEndpoint(<EndPoint>);
25 BosClient client = new BosClient(config);
26 // Set bucket access permission
27 client.setBucketAcl(<BucketName>, CannedAccessControlList.Private); //Specify the bucket name and set the bucket permission to private
28 } catch (BceServiceException e) {
29 System.out.println("Error ErrorCode: " + e.getErrorCode());
30 System.out.println("Error RequestId: " + e.getRequestId());
31 System.out.println("Error StatusCode: " + e.getStatusCode());
32 System.out.println("Error Message: " + e.getMessage());
33 System.out.println("Error ErrorType: " + e.getErrorType());
34 } catch (BceClientException e) {
35 System.out.println("Error Message: " + e.getMessage());
36 } catch (JSONException e) {
37 // TODO Auto-generated catch block
38 e.printStackTrace();
39 }
40 }
41 }).start();
42}
43}
Set access permissions for a specific user on the bucket
Basic workflow
- Instantiate the BOSClient class.
- To run the BOSClient.setBucketAcl() method, you should create an instance of SetBucketAclRequest to provide the required information.
- The setBucketAcl() method does not return any value. If the setting fails, an exception will be thrown.
Example code
Java
1List<Grant> grants = new ArrayList<Grant>();
2List<Grantee> grantee = new ArrayList<Grantee>();
3List<Permission> permission = new ArrayList<Permission>();
4 //Grant permission to user
5grantee.add(new Grantee(<UserID>);
6 //Set permissions
7permission.add(Permission.READ);
8grants.add(new Grant().withGrantee(grantee).withPermission(permission));
9 //Encapsulate into request
10SetBucketAclRequest request = new SetBucketAclRequest(<BucketName>, grants);
11 //Set bucket access permission
12client.setBucketAcl(request);
Note: The permission settings in Permission include three values:
READ,WRITEandFULL_CONTROL, which correspond to relevant permissions respectively. For details, refer to BOS API Documentation - [Permission Control via Uploading ACL Files](BOS/API Reference/Access control.md#Permission control by uploading ACL files).
Complete example
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 private String bucketName = <BucektName>;
19 List<Grant> grants = new ArrayList<Grant>();
20 List<Grantee> grantee = new ArrayList<Grantee>();
21 List<Permission> permission = new ArrayList<Permission>();
22 @Override
23 protected void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);
25 setContentView(R.layout.activity_main);
26 new Thread(new Runnable() {
27 @Override
28 public void run() {
29 try {
30 BosClientConfiguration config = new BosClientConfiguration();
31 config.setCredentials(new DefaultBceCredentials(<AccessKeyID>, <SecretAccessKey>));
32 config.setEndpoint(<EndPoint>);
33 BosClient client = new BosClient(config);
34 //Grant permission to specific user
35 grantee.add(new Grantee("UserId_1"));
36 grantee.add(new Grantee("UserId_2"));
37 //Grant permission to Everyone
38 grantee.add(new Grantee("*"));
39 //Set permissions
40 permission.add(Permission.READ);
41 permission.add(Permission.WRITE);
42 grants.add(new Grant().withGrantee(grantee).withPermission(permission));
43 //Encapsulate request
44 SetBucketAclRequest request = new SetBucketAclRequest(<BucketName>, grants);
45 //Set bucket access permission
46 client.setBucketAcl(request);
47 } catch (BceServiceException e) {
48 System.out.println("Error ErrorCode: " + e.getErrorCode());
49 System.out.println("Error RequestId: " + e.getRequestId());
50 System.out.println("Error StatusCode: " + e.getStatusCode());
51 System.out.println("Error Message: " + e.getMessage());
52 System.out.println("Error ErrorType: " + e.getErrorType());
53 } catch (BceClientException e) {
54 System.out.println("Error Message: " + e.getMessage());
55 } catch (JSONException e) {
56 // TODO Auto-generated catch block
57 e.printStackTrace();
58 }
59 }
60 }).start();
61}
62}
