添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

设置多版本对象访问权限

您可以通过ObsClient.setObjectAcl接口指定 VersionId参数 设置多版本对象的访问权限,示例代码如下:

// 创建ObsClient实例
var obsClient = new ObsClient({
    access_key_id: '*** Provide your Access Key ***',       
    secret_access_key: '*** Provide your Secret Key ***',       
    // 这里以华北-北京四为例,其他地区请按实际情况填写
    server: 'https://obs.cn-north-4.myhuaweicloud.com'
obsClient.setObjectAcl({
       Bucket : 'bucketname',
       Key : 'objectname',
       VersionId : 'versionid',
       // 通过预定义访问策略设置多版本对象访问权限为公共读
       ACL : obsClient.enums.AclPublicRead
}, function (err, result) {
       if(err){
              console.log('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
obsClient.setObjectAcl({
       Bucket : 'bucketname',
       Key : 'objectname',
       VersionId : 'versionid',
       // 设置对象所有者       
       Owner:{'ID':'ownerid'},
       Grants:[                                                      
                // 为所有用户设置读权限和写ACP权限                       
               { Grantee:{Type : 'Group', URI : obsClient.enums.GroupAllUsers}, Permission : obsClient.enums.PermissionRead},                     
               { Grantee:{Type : 'Group', URI : obsClient.enums.GroupAllUsers}, Permission : obsClient.enums.PermissionWriteAcp}
}, function (err, result) {
       if(err){
              console.log('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
     
  • 使用Owner参数指定对象的所有者信息;使用Grants参数指定被授权的用户信息。
  • ACL中需要填写的所有者(Owner)或者被授权用户(Grantee)的ID,是指用户的帐户ID,可通过OBS控制台“我的凭证”页面查看。
  • 当前OBS对象支持的可被授权的用户组为:
  • 所有用户:ObsClient.enums.GroupAllUsers
  • 获取多版本对象访问权限

    您可以通过ObsClient.getObjectAcl接口指定VersionId参数获取多版本对象的访问权限,示例代码如下:

    // 创建ObsClient实例
    var obsClient = new ObsClient({
        access_key_id: '*** Provide your Access Key ***',       
        secret_access_key: '*** Provide your Secret Key ***',       
        // 这里以华北-北京四为例,其他地区请按实际情况填写
        server: 'https://obs.cn-north-4.myhuaweicloud.com'
    obsClient.getObjectAcl({
           Bucket : 'bucketname',
           Key : 'objectname',
           VersionId : 'versionid'
    }, function (err, result) {
           if(err){
                  console.log('Error-->' + err);
           }else{
                  console.log('Status-->' + result.CommonMsg.Status); 
                  if(result.CommonMsg.Status < 300 && result.InterfaceResult){                            
                      console.log('Owner[ID]-->' + result.InterfaceResult.Owner.ID); 
                      console.log('Owner[Name]-->' + result.InterfaceResult.Owner.Name); 
                      for(var i in result.InterfaceResult.Grants){ 
                             console.log('Grant[' + i + ']:'); 
                             console.log('Grantee[ID]-->' + result.InterfaceResult.Grants[i]['Grantee']['ID']); 
                             console.log('Grantee[URI]-->' + result.InterfaceResult.Grants[i]['Grantee']['URI']); 
                             console.log('Permission-->'+ result.InterfaceResult.Grants[i]['Permission']);