華為云計(jì)算 云知識(shí) 設(shè)置桶的CORS配置SetBucketCors
設(shè)置桶的CORS配置SetBucketCors

 

接口說明

CORS(Cross Origin Resource Sharing),即跨域資源共享,是W3C標(biāo)準(zhǔn)化組織提出的一種規(guī)范機(jī)制,允許客戶端的跨域請(qǐng)求的配置。在通常的網(wǎng)頁請(qǐng)求中,由于安全策略SOP(Same Origin Policy)的存在,一個(gè)網(wǎng)站的腳本和內(nèi)容是不能與另一個(gè)網(wǎng)站的腳本和內(nèi)容發(fā)生交互的。

OBS允許在桶內(nèi)保存靜態(tài)的網(wǎng)頁資源,在正確的使用下,OBS的桶可以成為網(wǎng)站資源(請(qǐng)參見設(shè)置桶的網(wǎng)站配置)。只有進(jìn)行了適當(dāng)?shù)腃ORS配置,OBS中的網(wǎng)站才能響應(yīng)另一個(gè)網(wǎng)站的跨域請(qǐng)求。

典型的應(yīng)用場(chǎng)景如下:

你可以使用CORS支持,使用JavaScript和HTML 5來構(gòu)建Web應(yīng)用,直接訪問OBS中的資源,而不再需要代理服務(wù)器做中轉(zhuǎn)。 可以使用HTML 5中的拖拽功能,直接向OBS上傳文件,展示上傳進(jìn)度,或是直接從Web應(yīng)用中更新內(nèi)容。 托管在不同域中的外部網(wǎng)頁、樣式表和HTML 5應(yīng)用,現(xiàn)在可以引用存儲(chǔ)在OBS中的Web字體或圖片,讓這些資源能被多個(gè)網(wǎng)站共享。 要正確執(zhí)行此操作,需要確保執(zhí)行者有PutBucketCORS權(quán)限。默認(rèn)情況下只有桶的所有者可以執(zhí)行此操作,也可以通過設(shè)置桶策略或用戶策略授權(quán)給其他用戶。

URL
PUT  https://obs.cn-north-4.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)值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

Content-MD5
 
string header

按照RFC 1864標(biāo)準(zhǔn)計(jì)算出消息體的MD5摘要字符串,即消息體128-bit MD5值經(jīng)過base64編碼后得到的字符串。也支持設(shè)置Content-SHA256頭域,其值為消息體256-bit SHA256值經(jīng)過base64編碼后得到的字符串,Content-MD5和Content-SHA256二選一。

類型:字符串

示例:n58IG6hfM7vqI4K0vnWpog==

bucket_name
 
string query

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

cors
 
string query

cors表示請(qǐng)求桶的CORS配置API。

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

CORS規(guī)則,CORSConfiguration下可最多包含100個(gè)規(guī)則。

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

一條Rule的標(biāo)識(shí),由不超過255個(gè)字符的字符串組成。

類型:字符串。

父節(jié)點(diǎn):CORSRule。

AllowedMethod
 
Array of strings

CORS規(guī)則允許的Method。

類型:字符串。

有效值:GET、PUT、HEAD、POST 、DELETE

父節(jié)點(diǎn):CORSRule。

AllowedOrigin
 
string

CORS規(guī)則允許的Origin(表示域名的字符串),可以帶一個(gè)匹配符””。每一個(gè)AllowedOrigin可以帶最多一個(gè)“”通配符。

類型:字符串。

父節(jié)點(diǎn):CORSRule。

AllowedHeader
 
string

配置CORS請(qǐng)求中允許攜帶的“Access-Control-Request-Headers”頭域。如果一個(gè)請(qǐng)求帶了“Access-Control-Request-Headers”頭域,則只有匹配上AllowedHeader中的配置才認(rèn)為是一個(gè)合法的CORS請(qǐng)求。每一個(gè)AllowedHeader可以帶最多一個(gè)“*”通配符,不可出現(xiàn)空格。

類型:字符串。

父節(jié)點(diǎn):CORSRule。

MaxAgeSeconds
 
string

客戶端可以緩存的CORS響應(yīng)時(shí)間,以秒為單位。

每個(gè)CORSRule可以包含至多一個(gè)MaxAgeSeconds,可以設(shè)置為負(fù)值。

類型:整數(shù)。

父節(jié)點(diǎn):CORSRule。

ExposeHeader
 
string

CORS響應(yīng)中帶的附加頭域,給客戶端提供額外的信息,不可出現(xiàn)空格。

類型:字符串。

父節(jié)點(diǎn):CORSRule。

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

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

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

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

Connection
 
string

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

Date
 
string

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

ETag
 
string

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

x-obs-id-2
 
string

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

x-obs-request-id
 
string

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

返回碼: 400

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

名稱 類型 必選 描述
Code
 
string

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

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見錯(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
 
"/?cors"
 
"PUT /?cors HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 03:51:52 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:lq7BGoqE9yyhdEwE6KojJ7ysVxU=\nContent-MD5: NGLzvw81f/A2C9PiGO0aZQ==\nContent-Length: 617\n\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<CORSConfiguration> \n <CORSRule> \n <AllowedMethod>POST</AllowedMethod> \n <AllowedMethod>GET</AllowedMethod> \n <AllowedMethod>HEAD</AllowedMethod> \n <AllowedMethod>PUT</AllowedMethod> \n <AllowedMethod>DELETE</AllowedMethod> \n <AllowedOrigin>www.example.com</AllowedOrigin> \n <AllowedHeader>AllowedHeader_1</AllowedHeader> \n <AllowedHeader>AllowedHeader_2</AllowedHeader> \n <MaxAgeSeconds>100</MaxAgeSeconds> \n <ExposeHeader>ExposeHeader_1</ExposeHeader> \n <ExposeHeader>ExposeHeader_2</ExposeHeader> \n </CORSRule>\n</CORSConfiguration>\n"
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說明。