PUT /?policy HTTP/1.1
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 02:32:25 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
{ "Statement": [ {
"Sid": "Stmt1375240018061",
HTTP/1.1 204 No Content
x-obs-request-id: 7B6DFC9BC71DD58B061285551605709
x-obs-id-2: N0I2REZDOUJDNzFERDU4QjA2MTI4NTU1MTYwNTcwOUFBQUFBQUFBYmJiYmJiYmJD Date: WED, 01 Jul 2015 02:32:25 GMT
Content-Length: 0 Server: OBS
请求示例 2
向OBS用户授予权限
用户ID为71f3901173514e6988115ea2c26d1999,用户所属租户ID为 783fc6652cf246c096ea836694f71855。
如何获取租户ID和用户ID请参考7.4 获取帐号ID和用户ID。
PUT /?policy HTTP/1.1
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 02:33:28 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
{ "Statement": [
"domain/783fc6652cf246c096ea836694f71855:user/71f3901173514e6988115ea2c26d1999"
]
HTTP/1.1 204 No Content
x-obs-request-id: 7B6DFC9BC71DD58B061285551605709
x-obs-id-2: N0I2REZDOUJDNzFERDU4QjA2MTI4NTU1MTYwNTcwOUFBQUFBQUFBYmJiYmJiYmJD Date: WED, 01 Jul 2015 02:33:28 GMT
Content-Length: 0 Server: OBS
请求示例 3
拒绝除了某个指定OBS用户的其他用户执行所有操作
用户ID为71f3901173514e6988115ea2c26d1999,用户所属租户ID为 783fc6652cf246c096ea836694f71855。
如何获取租户ID和用户ID请参考7.4 获取帐号ID和用户ID。
PUT /?policy HTTP/1.1
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 02:34:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
{ "Statement": [
"domain/783fc6652cf246c096ea836694f71855:user/71f3901173514e6988115ea2c26d1999", "domain/783fc6652cf246c096ea836694f71855"
HTTP/1.1 204 No Content
x-obs-request-id: A603000001604A7DFE4A4AF31E301891
x-obs-id-2: BKOvGmTlt6sda5X4G89PuMO4fabObGYmnpRGkaMba1LqPt0fCACEuCMllAObRK1n Date: WED, 01 Jul 2015 02:34:34 GMT
Content-Length: 0 Server: OBS
请求示例 4
拒绝除了某个指定的域名和不带referer头域的外链请求以实现防盗链白名单 防盗链白名单:http://console.huaweicloud.com
PUT /?policy HTTP/1.1
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 02:34:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
{ "Statement": [{
"http://console.huaweicloud.com*", "${null}"
] } } }]
}
响应示例 4
HTTP/1.1 204 No Content
x-obs-request-id: A603000001604A7DFE4A4AF31E301891
x-obs-id-2: BKOvGmTlt6sda5X4G89PuMO4fabObGYmnpRGkaMba1LqPt0fCACEuCMllAObRK1n Date: WED, 01 Jul 2015 02:34:34 GMT
Content-Length: 0 Server: OBS
5.2.2 获取桶策略
功能介绍
该接口的实现使用policy子资源来将指定桶的策略返回给客户端。
要使用该接口,使用者必须是桶的所有者或者具有获取桶策略的权限。
以下两种场景无法使用此接口获取桶策略,系统将返回“404 NoSuchBucketPolicy”
的错误:
● 指定桶的策略不存在
● 指定桶的标准桶策略为私有且未设置高级桶策略
请求消息样式
GET /?policy HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com Date: date
Authorization: authorization
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体参见表3-3。
请求消息元素
该请求消息中不使用消息元素。
响应消息样式
HTTP/1.1 status_code Content-Type: application/xml Date: date
Policy Content
响应消息头
该请求的响应消息使用公共消息头,具体请参考表3-22。
响应消息元素
响应消息体是一个JSON格式的桶策略字符串。
错误响应消息
无特殊错误,所有错误已经包含在表7-3中。
请求示例
GET /?policy HTTP/1.1
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 02:35:46 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
响应示例
HTTP/1.1 200 OK
x-obs-request-id: A603000001604A7DFE4A4AF31E301891
x-obs-id-2: BKOvGmTlt6sda5X4G89PuMO4fabObGYmnpRGkaMba1LqPt0fCACEuCMllAObRK1n Date: WED, 01 Jul 2015 02:35:46 GMT
Content-Length: 509 Server: OBS { "Statement":[
{
"Sid":"Stmt1375240018061", "Effect":"Allow",
"Principal":{
"ID":[
"domain/domainiddomainiddomainiddo006666:user/useriduseriduseriduseridus004001", "domain/domainiddomainiddomainiddo006667:user/*"
] }, "Action":[
"*"
],
"Resource":[
"examplebucket"
] } ] }
5.2.3 删除桶策略
功能介绍
该接口的实现是通过使用policy子资源来删除一个指定桶上的策略。
要使用该接口,使用者必须是桶的所有者或者具有删除桶策略的权限。
无论桶的策略本身是否存在,删除成功后系统都直接返回“204 No Content”的结 果。
请求消息样式
DELETE /?policy HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com Date: date
Authorization: authorization
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体参见表3-3。
请求消息元素
该请求消息中不使用消息元素。
响应消息样式
HTTP/1.1 status_code Date: date
Content-Type: text/xml Content-Length: length
响应消息头
该请求的响应消息使用公共消息头,具体请参考表3-22。
响应消息元素
该请求的响应消息中不带有响应元素。
错误响应消息
无特殊错误,所有错误已经包含在表7-3中。
请求示例
DELETE /?policy HTTP/1.1
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Date: WED, 01 Jul 2015 02:36:06 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=
响应示例
HTTP/1.1 204 No Content
x-obs-request-id: 9006000001643AAAF70BF6152D71BE8A
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSB4oWmNX3gVGGLr1cRPWjOhffEbq1XV Date: WED, 01 Jul 2015 02:36:06 GMT
Server: OBS
5.2.4 设置桶 ACL
功能介绍
OBS支持对桶操作进行权限控制。默认情况下,只有桶的创建者才有该桶的读写权 限。用户也可以设置其他的访问策略,比如对一个桶可以设置公共访问策略,允许所 有人对其都有读权限。
OBS用户在创建桶时可以设置权限控制策略,也可以通过ACL操作API接口对已存在的 桶更改或者获取ACL(access control list) 。一个桶的ACL最多支持100条Grant授权。
使用桶ACL进行权限控制请参考《对象存储服务权限配置指南》的OBS权限控制概述章 节。
请求消息样式
PUT /?acl HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com Date: date
Authorization: authorization Content-Type: application/xml Content-Length: length
<AccessControlPolicy>
<Owner>
<ID>ID</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>domainId</ID>
</Grantee>
<Permission>permission</Permission>
<Delivered>false</Delivered>
</Grant>
</AccessControlList>
</AccessControlPolicy>
请求消息参数
该操作请求不带消息参数。
请求消息头
使用者可以使用头域设置的方式来更改桶的ACL,每一种头域设置的ACL都有一套自己 预先定义好的被授权用户以及相应权限,通过头域设置的方式授予访问权限,使用者 必须添加以下的头域并且指定取值。
表5-13 头域方式设置桶 ACL
名称 描述 是否必须
x-obs-acl 通过canned ACL的方式来设置桶的ACL。
取值范围:private | public-read | write | delivered | public-read-write-delivered
类型:字符串
否
请求消息元素
更改桶的ACL请求需要在消息元素中带上ACL信息,元素的具体含义如表3-3所示。
表5-14 附加请求消息元素
元素名称 描述 是否必选
Owner 桶的所有者信息,包含ID。
类型:XML。
是
ID 被授权用户的租户Id。
类型:字符串。
是
Grant 用于标记用户及用户的权限。单个
桶的ACL,Grant元素不能超过100 个。
类型:XML。
否
Grantee 记录用户信息。
类型:XML。
否
Canned 向所有人授予权限。
取值范围:Everyone 类型:枚举类型。
否
Delivered 桶的ACL是否向桶内对象传递。
类型:布尔类型。默认false。
否
Permission 授予的权限。
取值范围:READ | WRITE | FULL_CONTROL
类型:枚举类型。
否
AccessControlList 访问控制列表,包含Grant、
Grantee、Permission三个元素。
类型:XML。
是
响应消息样式
HTTP/1.1 status_code Date: date
Content-Length: length
响应消息头
该请求的响应消息使用公共消息头,具体请参考表3-22。
响应消息元素
该请求的响应消息中不带有响应元素。
错误响应消息
无特殊错误,所有错误已经包含在表7-3中。
请求示例
PUT /?acl HTTP/1.1 User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */*
Date: WED, 01 Jul 2015 02:37:22 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
Content-Length: 727
<AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
<Owner>
<ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
<Grant>
<Grantee>
<ID>783fc6652cf246c096ea836694f71855</ID>
</Grantee>
<Permission>READ</Permission>
<Delivered>false</Delivered>
</Grant>
<Grant>
<Grantee>
<Canned>Everyone</Canned>
</Grantee>
<Permission>READ_ACP</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应示例
HTTP/1.1 200 OK Server: OBS
x-obs-request-id: BF2600000164361F2954B4D063164704
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT78HTIBuhe0FbtSptrb/akwELtwyPKs Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Length: 0
5.2.5 获取桶 ACL
功能介绍
用户执行获取桶ACL的操作,返回信息包含指定桶的权限控制列表信息。用户必须拥有 对指定桶READ_ACP的权限或FULL_CONTROL权限,才能执行获取桶ACL的操作。
请求消息样式
GET /?acl HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com Date: date
Authorization: authorization
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体参见表3-3。
请求消息元素
该请求消息中不使用消息元素。
响应消息样式
HTTP/1.1 status_code Date: date
Content-Length: length Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
<Owner>
<ID>id</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>id</ID>
</Grantee>
<Permission>permission</Permission>
<Delivered>false</Delivered>
</Grant>
</AccessControlList>
</AccessControlPolicy>
响应消息头
该请求的响应消息使用公共消息头,具体请参考表3-22。
响应消息元素
该请求的响应中以消息元素的形式返回桶的ACL信息,元素的具体意义如表5-15所 示。
表5-15 响应消息元素
元素 元素说明
Owner 桶的所有者信息。
类型:XML。
ID 用户所属租户的租户Id。
类型:字符串。
AccessControlList 访问控制列表,记录了对该桶有访问权 限的用户列表和这些用户具有的权限。
类型:XML。
Grant 用于标记用户及用户的权限。
类型:XML。
元素 元素说明
Grantee 记录用户信息。
类型:XML。
Canned 向所有人授予权限。
类型:枚举类型。其值只能是 Everyone。
Delivered 桶的ACL是否向桶内对象传递。
类型:布尔类型。
Permission 指定的用户对该桶所具有的操作权限。
类型:字符串。
错误响应消息
无特殊错误,所有错误已经包含在表7-3中。
请求示例
GET /?acl HTTP/1.1 User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */*
Date: WED, 01 Jul 2015 02:39:28 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:X7HtzGsIEkzJbd8vo1DRu30vVrs=
响应示例
HTTP/1.1 200 OK Server: OBS
x-obs-request-id: BF260000016436B69D82F14E93528658
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSjTh8661+HF5y8uAnTOBIpNO133hji+
Content-Type: application/xml Date: WED, 01 Jul 2015 02:39:28 GMT Content-Length: 784
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/">
<Owner>
<ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee>
<ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
<Grant>
<Grantee>
<ID>783fc6652cf246c096ea836694f71855</ID>
</Grantee>
<Permission>READ</Permission>
<Delivered>false</Delivered>
</Grant>
<Grant>
<Grantee>
<Canned>Everyone</Canned>
</Grantee>
<Permission>READ_ACP</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
PUT /?logging HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com Date: date
Authorization: signatureValue
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus>
<Agency>agency-name</Agency>
<LoggingEnabled>
<TargetBucket>mybucketlogs</TargetBucket>
<TargetPrefix>mybucket-access_log-/</TargetPrefix>
<TargetGrants>
<Grant>
<Grantee>
<ID>domainID</ID>
</Grantee>
<Permission>READ</Permission>
</Grant>
</TargetGrants>
</LoggingEnabled>
</BucketLoggingStatus>
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用公共消息头,具体请参见表3-3。
请求消息元素
表5-16 请求消息元素表
名字 描述 是否必选
BucketLoggingStatus 日志状态信息的容器。
类型:容器
是
Agency 目标桶Owner通过统一身
份认证服务创建的对OBS 服务的委托的名称。
类型:字符串
设置logging时必选。关闭 logging时勿选。
LoggingEnabled 该元素起到对日志配置管 理的使能作用(呈现此元 素则打开日志配置,否则 关闭配置)。在此元素 下,可加入具体的日志配 置信息。
类型:容器
设置logging时必选。关闭 logging时勿选。
Grant 是被授权者及其权限的容
器。用于描述谁有什么权 限来访问产生的日志文 件。
类型:容器
否
Grantee 作为被授权logging权限用 户的容器。
类型:容器
否
ID 被授权者的租户ID,全局
唯一标识。
类型:字符串
否
名字 描述 是否必选 Permission 产生的日志文件对被授权
者的具体权限。
类型:字符串 权限有效值:
FULL_CONTROL | READ | WRITE
否
TargetBucket 在生成日志时,配置日志 桶的所有者可以指定一个 桶用于存放产生的日志文 件。需要保证配置日志文 件的桶owner对存放日志 文件的桶有
FULL_CONTROL权限。支 持多个桶生成的日志放在 同一个目标桶中,如果这 样做,就需要指定不同的 TargetPrefix以达到为来自 不同源桶的日志分类的目 的。
类型:字符串
设置logging时必选。关闭 logging时勿选。
TargetPrefix 通过该元素指定一个前 缀,所有生成的日志对象 的对象名都以此元素的内 容为前缀。
类型:字符串
设置logging时必选。关闭 logging时勿选。
TargetGrants 授权信息的容器。
类型:容器
否
存储访问日志的 object 命名规则
<TargetPrefix>YYYY-mm-DD-HH-MM-SS-<UniqueString>
● <TargetPrefix>为用户指定的目标前缀。
● YYYY-mm-DD-HH-MM-SS为日志生成的日期与时间,各字段依次表示年、月、
日、时、分、秒。
日、时、分、秒。