最近更新时间:2023-01-12 11:52:17
以下代码用于获取存储空间访问控制列表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的所有者才有权限操作。
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
。
纯净模式