对象存储服务 OBS-多版本对象权限:设置多版本对象访问权限

时间:2023-11-08 21:43:35

设置多版本对象访问权限

您可以通过ObsClient.setObjectAcl接口传入版本号(versionId)设置多版本对象的访问权限,示例代码如下:

// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
String ak = System.getenv("ACCESS_KEY_ID");
String sk = System.getenv("SECRET_ACCESS_KEY_ID");
String endPoint = "https://your-endpoint";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);

// 通过预定义访问策略设置多版本对象访问权限为公共读
obsClient.setObjectAcl("bucketname", "objectname", AccessControlList.REST_CANNED_PUBLIC_READ, "versionid");

AccessControlList acl = new AccessControlList();
Owner owner = new Owner();
owner.setId("ownerid");
acl.setOwner(owner);
// 为所有用户设置读权限
acl.grantPermission(GroupGrantee.ALL_USERS, Permission.PERMISSION_READ);
// 直接设置多版本对象访问权限
obsClient.setObjectAcl("bucketname", "objectname", acl, "versionid");

ACL中需要填写的所有者(Owner)或者被授权用户(Grantee)的ID,是指用户的帐号ID,可通过OBS控制台“我的凭证”页面查看。

support.huaweicloud.com/sdk-android-devg-obs/obs_26_0808.html