管理存储空间访问权限(JAVA)

最近更新时间:2021-12-16 11:41:51

设置bucket访问权限

bucket的访问权限说明可参照:权限概述

/**
*通过预设的ACL设置bucket的访问权限,预设的ACL包括:private:私有。public-read:为所有用户授予read权限。public-read-write:为所有用户授予read和write权限,
*/

public void putBucketAclWithCannedAcl(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 修改bucket ACL 请求
       PutBucketACLRequest request = new PutBucketACLRequest("<您的bucket名称>");
       // 设为私有
       request.setCannedAcl(CannedAccessControlList.Private);
       // 设为公开读 
       //request.setCannedAcl(CannedAccessControlList.PublicRead);
       // 设为公开读写
       //request.setCannedAcl(CannedAccessControlList.PublicReadWrite);
       client.putBucketACL(request);
}

/**

*自定义bucket的访问权限。

*/

public void putBucketAclWithAcl(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 修改bucket ACL 请求
       PutBucketACLRequest request = new PutBucketACLRequest("<您的bucket名称>");
       // acl 列表
       AccessControlList acl = new AccessControlList();
       // 设置用户id为 12345678的用户对bucket的读权限
       Grant grant1 = new Grant();
       grant1.setGrantee(new GranteeId("12345678"));
       grant1.setPermission(Permission.Read);
       // 添加 acl 权限
       acl.addGrant(grant1);
       // 设置用户id为123456789的用户对bucket完全控制
       Grant grant2 = new Grant();
       grant2.setGrantee(new GranteeId("123456789"));
       grant2.setPermission(Permission.FullControl);
       acl.addGrant(grant2);
       // 设置用户id为12345678910的用户对bucket的写权限
       Grant grant3 = new Grant();
       grant3.setGrantee(new GranteeId("12345678910"));
       grant3.setPermission(Permission.Write);
       acl.addGrant(grant3);
       // 配置 acl 
       request.setAccessControlList(acl);
       client.putBucketACL(request);
}

获取bucket访问权限

public AccessControlPolicy getBucketAcl(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       AccessControlPolicy acl = null;
       //只需要传入这个bucket的名称即可
       acl = client.getBucketACL("<您的bucket名称>");
       return acl;
}

说明:

  • AccessControlPolicy中有public CannedAccessControlList 。getCannedAccessControlList()方法可以从ACL中提取出预设ACL来。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈