• 沒有找到結果。

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为日志生成的日期与时间,各字段依次表示年、月、

日、时、分、秒。

日、时、分、秒。