OBS支持对对象的操作进行权限控制。默认情况下,只有对象的创建者才有该对象的读写权限。用户也可以设置其他的访问策略,比如对一个对象可以设置公共访问策略,允许所有人对其都有读权限。SSE-KMS方式加密的对象即使设置了ACL,跨租户也不生效。
OBS用户在上传对象时可以设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改或者获取ACL(access control list) 。一个对象的ACL最多支持100条Grant授权。
本节将介绍如何更改对象ACL,改变对象的访问权限。
多版本
默认情况下,更改的是最新版本的对象ACL。要设置指定版本的对象ACL,请求可以带参数versionId。
名称 | 类型 | IN | 必选 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
请求消息中可带的签名信息。 |
Date
|
string | header | 否 |
请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默认值:无。 条件:如果消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。 |
object_key
|
string | path | 是 |
设置ACL对象的名称。 |
bucket_name
|
string | query | 是 |
请求的桶名称。 |
acl
|
string | query | 是 |
表示请求 对象acl api。 |
versionId
|
string | query | 否 |
指定设置ACL对象的版本号。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Owner
|
Owner object | 是 |
桶拥有者信息,包含租户ID。 |
Delivered
|
boolean | 否 |
对象ACL是否继承桶的ACL。 类型:布尔类型。默认true。 |
AccessControlList
|
Array of Grant objects | 否 |
访问控制列表,包含Grant、 Grantee、Permission三个元素。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
ID
|
string | 否 |
用户的DomainID(帐号ID)。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Grantee
|
Grantee object | 否 |
用于标记用户及用户的权限。单个桶的ACL,Grant元素不能超过100个 |
Permission
|
string | 否 |
授予的权限 |
Delivered
|
boolean | 否 |
桶的ACL是否向桶内对象传递 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
ID
|
string | 否 |
被授权用户的租户Id |
请求成功响应消息。
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Content-Length
|
string | 否 |
响应消息体的字节长度。 |
Connection
|
string | 否 |
指明与服务器的连接是长连接还是短连接。 |
Date
|
string | 否 |
OBS系统响应的时间。 |
ETag
|
string | 否 |
对象的base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。实际的ETag是对象的哈希值。ETag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,通过MD5加密后都有唯一的ETag。如果通过多段上传对象,则无论加密方法如何,MD5会拆分ETag,此类情况ETag就不是MD5的摘要。 |
x-obs-id-2
|
string | 否 |
帮助定位问题的特殊符号。 |
x-obs-request-id
|
string | 否 |
由OBS创建来唯一确定本次请求的值,可以通过该值来定位问题。 |
x-obs-version-id
|
string | 否 |
被更改ACL的对象的版本号。 |