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)給其他用戶。
| 名稱 | 類型 | 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。  | 
| 名稱 | 類型 | 必選 | 描述 | 
|---|---|---|---|
| 
 CORSRule
 
 | 
Array of CORSRule objects | 是 | 
 CORS規(guī)則,CORSConfiguration下可最多包含100個(gè)規(guī)則。  | 
| 名稱 | 類型 | 必選 | 描述 | 
|---|---|---|---|
| 
 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。  | 
請(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)求的值,可以通過該值來定位問題。  | 
請(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源。  | 
  
    