Appearance
Bucket权限管理
设置Bucket的访问权限
如下代码将Bucket的权限设置为了private。
java
public void setBucketPrivate (FosClient client, String bucketName) {
client.setBucketAcl(<bucketName>, CannedAccessControlList.Private);}
CannedAccessControlList是枚举类型,包含三个值: Private 、 PublicRead 、 PublicReadWrite ,它们分别对应相关权限。具体内容可以参考FOS API文档 使用CannedAcl方式的权限控制
设置更多Bucket访问权限
- 通过设置refer白名单方式设置防盗链
java
String jsonAcl = "";
client.setBucketAcl("bucketName", jsonAcl)
其中jsonAcl为
json
{
"accessControlList": [
{
"grantee": [
{
"id": "*"
}
],
"permission": ["FULL_CONTROL"],
"condition": {
"referer": {
"stringEquals": ["http://test/index"]
}
}
}
]
}
- 限制客户端IP访问,只允许部分客户端IP访问
java
String jsonAcl = "";
client.setBucketAcl("bucketName", jsonAcl)
其中jsonAcl为
json
{
"accessControlList": [
{
"grantee": [
{
"id": "*"
}
],
"permission": ["FULL_CONTROL"],
"condition": {
"ipAddress": ["192.170.0.6"]
}
}
]
}
查看Bucket的权限
如下代码可以查看Bucket的权限:
java
GetBucketAclResponse aclResponse = client.getBucketAcl("bucketName");
System.out.println(aclResponse.getAccessControlList().toString());
getBucketAcl方法返回的解析类中可供调用的参数有:
参数 | 说明 |
---|---|
owner | Bucket owner信息 |
id | Bucket owner的租户CODE和租户ID的组合字符串,组合方式:{租户CODE}- |
acl | 标识Bucket的权限列表 |
grantee | 标识被授权人 |
-id | 被授权租户CODE和租户ID的组合字符串 |
permission | 标识被授权租户的权限 |