華為云計(jì)算 云知識(shí) 設(shè)置桶的鏡像回源規(guī)則SetBucketMirrorBackToSource
設(shè)置桶的鏡像回源規(guī)則SetBucketMirrorBackToSource

 

接口說(shuō)明

本接口用于為指定桶配置 鏡像 回源策略。接口是冪等的,若桶上已存在相同策略內(nèi)容,則返回成功,status code返回值為200;否則status code返回值為201。

URL
PUT  https://obs.af-south-1.myhuaweicloud.com/ 
請(qǐng)求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請(qǐng)求消息中可帶的簽名信息。

Date
 
string header

請(qǐng)求發(fā)起端的日期和時(shí)間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認(rèn)值:無(wú)。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

bucket_name
 
string query

請(qǐng)求的桶名稱。

mirrorBackToSource
 
string query

mirrorBackToSource表示請(qǐng)求桶的鏡像回源規(guī)則API。

Body參數(shù)
名稱 類型 必選 描述
rules
 
Array of rules objects

策略規(guī)則數(shù)組。 說(shuō)明: 同一個(gè)桶下的不同策略前綴不能重復(fù)和起始包含,委托建議使用同一個(gè)。

參數(shù):
rules
名稱 類型 必選 描述
id
 
string

規(guī)則ID。當(dāng)前桶上配置的鏡像回源規(guī)則的唯一標(biāo)識(shí)。 取值范圍:[1, 256],滿足“^[a-zA-Z0-9_-]{1, 256}$”

condition
 
condition object

觸發(fā)回源功能的條件。

redirect
 
redirect object

回源功能主要參數(shù)。

參數(shù):
rules.condition
名稱 類型 必選 描述
httpErrorCodeReturnedEquals
 
string

觸發(fā)回源功能的錯(cuò)誤碼。當(dāng)下載請(qǐng)求返回此錯(cuò)誤碼時(shí),會(huì)觸發(fā)回源功能。

objectKeyPrefixEquals
 
string

觸發(fā)回源功能的對(duì)象名前綴。當(dāng)觸發(fā)回源的請(qǐng)求里對(duì)象名滿足此前綴,才會(huì)繼續(xù)執(zhí)行回源功能。當(dāng)前綴配置為空時(shí),默認(rèn)所有對(duì)象都匹配。同一個(gè)桶上多條規(guī)則的前綴之間不允許重復(fù)和起始包含。 有效值:長(zhǎng)度[0, 1023],值允許為任意字符

參數(shù):
rules.redirect
名稱 類型 必選 描述
agency
 
string

委托名??蛻敉ㄟ^(guò)委托賦予OBS服務(wù)查詢用戶桶內(nèi)指定對(duì)象是否存在以及向用戶桶內(nèi)上傳對(duì)象的權(quán)限。

publicSource
 
publicSource object

公共可訪問(wèn)源端配置。當(dāng)源端為公共可訪問(wèn)的資源時(shí),必選。

retryConditions
 
Array of strings

回源地址切換的條件。

類型:數(shù)組

取值范圍:4XX,5XX以及400~499,500~599等具體錯(cuò)誤碼

說(shuō)明: 4XX和4開(kāi)頭的具體錯(cuò)誤碼不能同時(shí)配置,5XX和5開(kāi)頭的錯(cuò)誤碼不能同時(shí)配置。

最大支持同時(shí)配置20個(gè)錯(cuò)誤碼

passQueryString
 
boolean

是否攜帶請(qǐng)求字符串。如果是true,會(huì)將OBS請(qǐng)求中的queryString傳遞到源站。否則,則不會(huì)將queryString傳遞到源站。 該值默認(rèn)值是false,如果設(shè)置為false則會(huì)忽略。

說(shuō)明: 如果是true,但query里有簽名信息,則將簽名信息去掉,剩余參數(shù)再傳遞。

mirrorFollowRedirect
 
boolean

是否跟隨源站3xx重定向請(qǐng)求獲取到資源。如果是true,跟隨源站3xx重定向請(qǐng)求獲取到資源。否則,OBS會(huì)透?jìng)?XX響應(yīng),不獲取資源。該值默認(rèn)值是false,如果設(shè)置為false則會(huì)忽略。

redirectWithoutReferer
 
boolean

是否將原h(huán)ost作為referer頭域攜帶到重定向的目的地址去。false為需要攜帶, true為不攜帶。

mirrorAllowHttpMethod
 
Array of strings

需要透?jìng)鞯膆ttp請(qǐng)求的類型,如HEAD,目前只支持HEAD

mirrorHttpHeader
 
mirrorHttpHeader object

HTTP header傳遞規(guī)則。

replaceKeyWith
 
string

添加前后綴。去源端下載對(duì)象的時(shí)候,如果需要添加前綴或后綴,則修改此項(xiàng)配置為prefix${key}suffix。如果不需要增加前后綴,則配置為${key}。

取值范圍:prefix${key}suffix。

${key}為關(guān)鍵字,prefix為要添加的前綴,suffix為要添加的后綴。同時(shí)prefix和suffix的總長(zhǎng)度[0, 1023]

replaceKeyPrefixWith
 
string

替換前綴objectKeyPrefixEquals的字符串。如果去源端下載對(duì)象時(shí),需要替換當(dāng)前的對(duì)象名前綴,則修改此項(xiàng)配置。

如果replaceKeyWith和ReplaceKeyPrefixWith同時(shí)為空,則ReplaceKeyPrefixWith生效。同時(shí)非空為非法請(qǐng)求。

類型:字符串

取值范圍:長(zhǎng)度[0, 1023]

vpcEndpointURN
 
string

終端節(jié)點(diǎn)服務(wù)的URN。 取值范圍:長(zhǎng)度[0, 127]

參數(shù):
rules.redirect.publicSource
名稱 類型 必選 描述
sourceEndpoint
 
sourceEndpoint object

公共可訪問(wèn)的源端地址。

參數(shù):
rules.redirect.publicSource.sourceEndpoint
名稱 類型 必選 描述
master
 
Array of strings

主源端地址。如果源端為HTTP公共可訪問(wèn)的桶,則此地址為桶域名地址。如果源端為其他云廠商的私有桶,則此地址為區(qū)域域名地址。

有效取值:單個(gè)源站地址格式為https|http://xxx.yyy.zzz,長(zhǎng)度為[10, 255]

說(shuō)明: 回源時(shí)會(huì)優(yōu)先使用主源站地址,如果同時(shí)配置多個(gè)主地址,會(huì)輪詢?cè)L問(wèn)所有主地址。如果配置2個(gè)及以上主地址,第一次請(qǐng)求主地址失敗,并且滿足重試條件時(shí),會(huì)選用另一個(gè)主地址重試一次。 至少配置一個(gè)主地址。 最多同時(shí)配置5個(gè)主地址。

slave
 
Array of strings

備源端地址。如果源端為HTTP公共可訪問(wèn)的桶,則此地址為桶域名地址。如果源端為其他云廠商的私有桶,則此地址為區(qū)域域名地址。

有效取值:單個(gè)源站地址格式為https|http://xxx.yyy.zzz,長(zhǎng)度為[10, 255]

說(shuō)明: 主地址回源失敗時(shí),會(huì)選用一個(gè)備地址進(jìn)行重試。 最多同時(shí)配置5個(gè)備地址。

參數(shù):
rules.redirect.mirrorHttpHeader
名稱 類型 必選 描述
passAll
 
boolean

是否透?jìng)魅縃TTP header到源端。

以下HTTP header類型不支持透?jìng)? 1.以下前綴開(kāi)頭的header: x-obs- x-amz-

2.所有標(biāo)準(zhǔn)HTTP header,例如: Content-Length Authorization Date passAll與pass互斥。

pass
 
Array of strings

指定透?jìng)鞯腍TTP header列表。

取值范圍:最大10個(gè),每個(gè)長(zhǎng)度[1, 63],key只支持字母(大小寫(xiě))、數(shù)字、中劃線、下劃線

remove
 
Array of strings

不允許透?jìng)鞯腍TTP header列表。 remove優(yōu)先級(jí)高于pass和passAll。

取值范圍:最大10個(gè),每個(gè)長(zhǎng)度[1, 63],key只支持字母(大小寫(xiě))、數(shù)字、中劃線、下劃線

set
 
Array of set objects

設(shè)置透?jìng)鞯腍TTP header值列表。 set優(yōu)先級(jí)高于remove,pass和passAll。 如果自定義頭域中包含了Referer頭域,必須將redirectWithoutReferer設(shè)置為true,不然會(huì)被覆蓋

取值范圍:最大10個(gè)

參數(shù):
rules.redirect.mirrorHttpHeader.set
名稱 類型 必選 描述
key
 
string

設(shè)置需要透?jìng)鱄TTP header的關(guān)鍵字。

多條key之間不允許重復(fù)。 取值范圍:長(zhǎng)度[1, 63],只支持字母(大小寫(xiě))、數(shù)字、中劃線、下劃線

value
 
string

設(shè)置需要透?jìng)鱄TTP header的值。

取值范圍:長(zhǎng)度[0, 2048]

返回參數(shù)
返回碼: 200

請(qǐng)求成功響應(yīng)消息。

名稱 類型 必選 描述
Content-Length
 
string

響應(yīng)消息體的字節(jié)長(zhǎng)度。

Connection
 
string

指明與服務(wù)器的連接是長(zhǎng)連接還是短連接。

Date
 
string

OBS系統(tǒng)響應(yīng)的時(shí)間。

ETag
 
string

對(duì)象的base64編碼的128位MD5摘要。ETag是對(duì)象內(nèi)容的唯一標(biāo)識(shí),可以通過(guò)該值識(shí)別對(duì)象內(nèi)容是否有變化。比如上傳對(duì)象時(shí)ETag為A,下載對(duì)象時(shí)ETag為B,則說(shuō)明對(duì)象內(nèi)容發(fā)生了變化。實(shí)際的ETag是對(duì)象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對(duì)象或拷貝操作創(chuàng)建的對(duì)象,通過(guò)MD5加密后都有唯一的ETag。如果通過(guò)多段上傳對(duì)象,則無(wú)論加密方法如何,MD5會(huì)拆分ETag,此類情況ETag就不是MD5的摘要。

x-obs-id-2
 
string

幫助定位問(wèn)題的特殊符號(hào)。

x-obs-request-id
 
string

由OBS創(chuàng)建來(lái)唯一確定本次請(qǐng)求的值,可以通過(guò)該值來(lái)定位問(wèn)題。

返回碼: 400

請(qǐng)求失敗響應(yīng)消息。

名稱 類型 必選 描述
Code
 
string

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯(cuò)誤相關(guān)的桶或?qū)ο筚Y源。

請(qǐng)求示例
示例 1
 
"/?mirrorBackToSource"
 
"PUT /?mirrorBackToSource HTTP/1.1\nHost: bucketname.obs.cn-north-4.myhuaweicloud.com \nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo=\nContent-Type: application/json\nContent-Length: 1049\nDate: Tue, 21 Jul 2020 15:38:30 GMT\n\n{\n \"rules\": [{\n \"id\": \"abc123\",\n \"condition\": {\n \"httpErrorCodeReturnedEquals\": \"404\",\n \"objectKeyPrefixEquals\": \"video/\"\n },\n \"redirect\": {\n \"agency\": \"agency\",\n \"publicSource\": {\n \"sourceEndpoint\": {\n \"master\":[\"http://bucket1.xxx.yyy.com\", \"https://bucket2.xxx.yyy.com\"],\n \"slave\": [\"http://bucket3.xxx.yyy.com\", \"https://bucket4.xxx.yyy.com\"]\n }\n },\n \"retryConditions\": [\"4XX\", \"5XX\"],\n \"passQueryString\": true,\n \"mirrorFollowRedirect\": true,\n \"redirectWithoutReferer\": true,\n \"mirrorAllowHttpMethod\":[\"HEAD\"],\n \"mirrorHttpHeader\": {\n \"passAll\": false,\n \"pass\": [\"content-encoding\"],\n \"remove\": [\"content-type\"],\n \"set\": [{\n \"key\": \"helloworld\",\n \"value\": \"2222\"\n }]\n },\n \"replaceKeyWith\": \"prefix${key}suffix\",\n \"replaceKeyPrefixWith\": \"picture/\",\n \"vpcEndpointURN\": \"001\"\n }\n }]\n}\n"
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說(shuō)明。