華為云計算 云知識 設置桶的CORS配置SetBucketCors
設置桶的CORS配置SetBucketCors

 

接口說明

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

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

典型的應用場景如下:

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

URL
PUT  https://obs.cn-north-4.myhuaweicloud.com/ 
請求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請求消息中可帶的簽名信息。

Date
 
string header

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

Content-MD5
 
string header

按照RFC 1864標準計算出消息體的MD5摘要字符串,即消息體128-bit MD5值經過base64編碼后得到的字符串。也支持設置Content-SHA256頭域,其值為消息體256-bit SHA256值經過base64編碼后得到的字符串,Content-MD5和Content-SHA256二選一。

類型:字符串

示例:n58IG6hfM7vqI4K0vnWpog==

bucket_name
 
string query

請求的桶名稱。

cors
 
string query

cors表示請求桶的CORS配置API。

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

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

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

一條Rule的標識,由不超過255個字符的字符串組成。

類型:字符串。

父節(jié)點:CORSRule。

AllowedMethod
 
Array of strings

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

類型:字符串。

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

父節(jié)點:CORSRule。

AllowedOrigin
 
string

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

類型:字符串。

父節(jié)點:CORSRule。

AllowedHeader
 
string

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

類型:字符串。

父節(jié)點:CORSRule。

MaxAgeSeconds
 
string

客戶端可以緩存的CORS響應時間,以秒為單位。

每個CORSRule可以包含至多一個MaxAgeSeconds,可以設置為負值。

類型:整數(shù)。

父節(jié)點:CORSRule。

ExposeHeader
 
string

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

類型:字符串。

父節(jié)點:CORSRule。

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

請求成功響應消息。

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

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

Connection
 
string

指明與服務器的連接是長連接還是短連接。

Date
 
string

OBS系統(tǒng)響應的時間。

ETag
 
string

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

x-obs-id-2
 
string

幫助定位問題的特殊符號。

x-obs-request-id
 
string

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

返回碼: 400

請求失敗響應消息。

名稱 類型 必選 描述
Code
 
string

錯誤響應消息體XML中錯誤響應對應的HTTP消息返回碼,具體的錯誤碼請參見錯誤碼-表2。

Message
 
string

錯誤響應消息體XML中具體錯誤更全面、詳細的英文解釋,具體的錯誤消息請參見錯誤碼-表2

RequestId
 
string

本次錯誤請求的請求ID,用于錯誤定位。

HostId
 
string

返回該消息的服務端ID。

Resource
 
string

該錯誤相關的桶或對象資源。

請求示例
示例 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"
錯誤碼
請參考 錯誤碼說明。