OBS支持對對象的操作進(jìn)行權(quán)限控制。默認(rèn)情況下,只有對象的創(chuàng)建者才有該對象的讀寫權(quán)限。用戶也可以設(shè)置其他的訪問策略,比如對一個對象可以設(shè)置公共訪問策略,允許所有人對其都有讀權(quán)限。SSE-KMS方式加密的對象即使設(shè)置了ACL,跨租戶也不生效。
OBS用戶在上傳對象時可以設(shè)置權(quán)限控制策略,也可以通過ACL操作API接口對已存在的對象更改或者獲取ACL(access control list) 。一個對象的ACL最多支持100條Grant授權(quán)。
本節(jié)將介紹如何更改對象ACL,改變對象的訪問權(quán)限。
多版本
默認(rèn)情況下,更改的是最新版本的對象ACL。要設(shè)置指定版本的對象ACL,請求可以帶參數(shù)versionId。
名稱 | 類型 | IN | 必選 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
請求消息中可帶的簽名信息。 |
Date
|
string | header | 否 |
請求發(fā)起端的日期和時間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認(rèn)值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。 |
object_key
|
string | path | 是 |
設(shè)置ACL對象的名稱。 |
bucket_name
|
string | query | 是 |
請求的桶名稱。 |
acl
|
string | query | 是 |
表示請求 對象acl api。 |
versionId
|
string | query | 否 |
指定設(shè)置ACL對象的版本號。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
Owner
|
Owner object | 是 |
桶擁有者信息,包含租戶ID。 |
Delivered
|
boolean | 否 |
對象ACL是否繼承桶的ACL。 類型:布爾類型。默認(rèn)true。 |
AccessControlList
|
Array of Grant objects | 否 |
訪問控制列表,包含Grant、 Grantee、Permission三個元素。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
ID
|
string | 否 |
用戶的DomainID(帳號ID)。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
Grantee
|
Grantee object | 否 |
用于標(biāo)記用戶及用戶的權(quán)限。單個桶的ACL,Grant元素不能超過100個 |
Permission
|
string | 否 |
授予的權(quán)限 |
Delivered
|
boolean | 否 |
桶的ACL是否向桶內(nèi)對象傳遞 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
ID
|
string | 否 |
被授權(quán)用戶的租戶Id |
請求成功響應(yīng)消息。
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
Content-Length
|
string | 否 |
響應(yīng)消息體的字節(jié)長度。 |
Connection
|
string | 否 |
指明與服務(wù)器的連接是長連接還是短連接。 |
Date
|
string | 否 |
OBS系統(tǒng)響應(yīng)的時間。 |
ETag
|
string | 否 |
對象的base64編碼的128位MD5摘要。ETag是對象內(nèi)容的唯一標(biāo)識,可以通過該值識別對象內(nèi)容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內(nèi)容發(fā)生了變化。實(shí)際的ETag是對象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對象或拷貝操作創(chuàng)建的對象,通過MD5加密后都有唯一的ETag。如果通過多段上傳對象,則無論加密方法如何,MD5會拆分ETag,此類情況ETag就不是MD5的摘要。 |
x-obs-id-2
|
string | 否 |
幫助定位問題的特殊符號。 |
x-obs-request-id
|
string | 否 |
由OBS創(chuàng)建來唯一確定本次請求的值,可以通過該值來定位問題。 |
x-obs-version-id
|
string | 否 |
被更改ACL的對象的版本號。 |