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

最近更新时间:2023-01-12 11:52:17

Get Bucket ACL 获取空间ACL

以下代码用于获取存储空间访问控制列表ACL:

client.getBucketACL("<bucketName>", new GetBucketACLResponceHandler() {

    @Override
    public void onSuccess(int statesCode, Header[] responceHeaders, AccessControlPolicy accessControlPolicy) {
    	// 请求成功 通过accessControlPolicy可以得到当前存储空间的权限信息
      	Owner owner = accessControlPolicy.getOwner();
       	HashSet<Grant> grants = accessControlPolicy.getAccessControlList().getGrants();
    }

    @Override
    public void onFailure(int statesCode, Ks3Error error, Header[] responceHeaders, String response, Throwable paramThrowable) {
      // 请求失败
    }
});

注 :此接口只有Bucket的所有者才有权限操作。

Put Bucket ACL 设置ACL

PutBucketAcl接口用于设置或修改存储空间(Bucket)的访问权限(ACL)。

client.putBucketACL("<bucketName>", CannedAccessControlList.PublicRead, new PutBucketACLResponseHandler() {
    @Override
    public void onFailure(int statesCode, Ks3Error error, Header[] responceHeaders, String response, Throwable paramThrowable) {
        //请求失败
    }

    @Override
    public void onSuccess(int statesCode, Header[] responceHeaders) {
	//请求成功
    }
});

// 当然也可以通过AccessControlList进行更精细的设置
PutBucketACLRequest request = new PutBucketACLRequest("<bucketName>");
AccessControlList acl = new AccessControlList();

// 被授权者的id和name、权限等信息的设置
request.setAccessControlList(acl) ;
AccessControlList acl = new AccessControlList();

client.putBucketACL(request, new PutBucketACLResponseHandler() {

    @Override
    public void onSuccess(int statesCode,Header[] responceHeaders) {
     	//请求成功
    }

    @Override
    public void onFailure(int statesCode, Ks3Error error,Header[] responceHeaders, String response,Throwable paramThrowable) {
	//请求失败
    }
});

注 :

  • 此接口的请求者需要对Bucket有写入ACL的权限,PutBucketAcl为覆盖语义,即新传入的ACL将覆盖原有的ACL;如果指定要设置的Bucket不存在,调用此接口时statesCode将返回404,response里面对应的错误码是NoSuchBucket。

  • 在返回的ACL信息中FULL_CONTROL也即 Private

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

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

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

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

更多建议

0/200

评价建议不能为空

提交成功!

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

问题反馈