设置Bucket的访问权限
接口说明
本接口用于设置Bucket的访问权限。目前BOS支持两种方式设置ACL。第一种是使用CannedAcl,在PutBucketAcl的时候,通过头域的“x-bce-acl"来设置,当前可设置的权限包括:private, public-read, public-read-write(大小写敏感)。第二种方式是上传一个ACL文件,文件格式参见ACL文件格式。
注意事项
- BOS系统不支持在同一请求中,同时设置“x-bce-acl”和上传ACL文件。
- 只有Bucket的拥有者和被授予FULL_CONTROL权限的用户才能设置Bucket的ACL权限。
- 在创建Bucket时,Bucket权限会默认设置为private。
请求URI
PUT /v1/{bucketName}/?acl
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
参数位置 |
bucketName |
String |
是 |
bucket名称 |
"bucketName_example" |
Path |
请求头参数
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
xBceAcl |
String |
否 |
Bucket设置的ACL权限,支持:private、public-read、public-read-write |
"xBceAcl_example" |
请求体参数
请求体字段数据结构说明
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
accessControlList |
List<AccessControlList> |
否 |
标识acl主体的开始,由一或多组acl配置项组成,其中acl配置项由grantee+permission+resource+condition组合而成。 |
|
AccessControlList字段数据结构说明
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
effect |
String |
否 |
指定与该条acl配置项匹配的Request能否执行,取值为Allow或Deny。Allow表示可以执行;Deny表示拒绝执行。 |
Allow |
grantee |
List<Grantee> |
是 |
标识被授权人。 |
|
permission |
List<String> |
是 |
ACL配置项所影响的权限,可选值为READ、LIST、WRITE、和GetObject。权限详细解释请参见"Bucket ACL支持的permission权限"。 |
|
resource |
List<String> |
否 |
ACL配置项所影响的资源,表示对resource指定范围的资源设置访问权限,支持通配符。如:/或/xxx。 resource不填或填Bucket名称,等同于resource字段设为[, /_],即对Bucket和所有Object设置访问权限。 |
|
notResouce |
String |
否 |
ACL配置项所影响的资源,表示对notResource指定范围以外的资源设置访问权限,支持通配符。如:/或/xxx*,表示对BucketName中ObjectKey之外的Object或者以XXX为前缀的Object之外的其他Object设置访问权限。如果notResource字段不填则等同于没有配置notResource,即采用默认配置,对Bucket及所有Object设置访问权限。 |
|
condition |
Condition |
否 |
ACL配置项所包含的限制条件,支持配置IP地址和Referer名单 |
|
Grantee字段数据结构说明
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
id |
String |
否 |
标识被授权人的Account ID,用户的Account ID可以登录控制台点击账户名下的“用户信息->基本信息”查看。 |
10eb6f5ff6ff4605bf044313e8f3ffa5 |
Condition字段数据结构说明
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
currentTime |
CurrentTime |
否 |
condition配置项所包含的时间限制条件,支持配置"dateLessThan","dateLessThanEquals", "dateGreaterThan"和"dateGreaterThanEquals",四个配置项可以任选若干进行设置,匹配有效的条件是所设置配置项均需匹配。 |
|
secureTransport |
Boolean |
否 |
标识是否只允许https方式访问。可选值“true”、"false",不设置时视为“false”。当设置为"true"时,表示只允许https方式访问。 |
true |
ipAddress |
List<String> |
否 |
标识授予访问权限的ip |
|
referer |
Referer |
否 |
标识授予访问权限的referer |
|
CurrentTime字段数据结构说明
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
dateLessThan |
String |
否 |
|
2020-07-01T12:00:00Z |
dateGreaterThan |
String |
否 |
|
2018-03-01T15:00:00Z |
Referer字段数据结构说明
参数名称 |
参数类型 |
是否必须 |
描述 |
示例值 |
stringLike |
List<String> |
否 |
|
|
stringEquals |
List<String> |
否 |
|
|
响应体参数
无
请求示例
PUT /v1/bucketName_example/?acl
<公共请求头>
x-bce-acl: xBceAcl_example
{
"accessControlList" : [ {
"notResouce" : "notResouce",
"condition" : {
"currentTime" : {
"dateLessThan" : "2020-07-01T12:00:00Z",
"dateGreaterThan" : "2018-03-01T15:00:00Z"
},
"secureTransport" : true,
"referer" : {
"stringLike" : [ "http://www.abc.com/*" ],
"stringEquals" : [ "http://www.abc.com" ]
},
"ipAddress" : [ "192.168.1.1" ]
},
"resource" : [ "bucket1/*" ],
"effect" : "Allow",
"grantee" : [ {
"id" : "10eb6f5ff6ff4605bf044313e8f3ffa5"
} ],
"permission" : [ "FULL_CONTROL" ]
} ]
}
响应示例
无
错误码
请参考通用错误码