OPTIONS,稱為預(yù)請求,是客戶端發(fā)送給服務(wù)端的一種請求,通常被用于檢測客戶端是否具有對服務(wù)端進行操作的權(quán)限。只有當預(yù)請求成功返回,客戶端才開始執(zhí)行后續(xù)的請求。
OBS允許在桶內(nèi)保存靜態(tài)的網(wǎng)頁資源,在正確的使用下,OBS的桶可以成為網(wǎng)站資源。在這種使用場景下,OBS中的桶作為服務(wù)端,需要處理客戶端發(fā)送的OPTIONS預(yù)請求。
要處理OPTIONS,OBS的桶必須已經(jīng)配置CORS,關(guān)于CORS的使用說明,請參見章節(jié) 設(shè)置桶的CORS配置。
名稱 | 類型 | IN | 必選 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
請求消息中可帶的簽名信息。 |
Date
|
string | header | 否 |
請求發(fā)起端的日期和時間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。 |
Origin
|
string | header | 是 |
預(yù)請求指定的跨域請求Origin(通常為域名)。 類型:字符串 |
Access-Control-Request-Method
|
string | header | 是 |
實際請求可以帶的HTTP方法,可以帶多個方法頭域。 類型:字符串 有效值:GET、PUT、HEAD、POST 、DELETE |
Access-Control-Request-Headers
|
string | header | 否 |
實際請求可以帶的HTTP頭域,可以帶多個頭域。 類型:字符串 |
bucket_name
|
string | query | 是 |
請求的桶名稱。 |
請求成功響應(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)容的唯一標識,可以通過該值識別對象內(nèi)容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內(nèi)容發(fā)生了變化。實際的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)建來唯一確定本次請求的值,可以通過該值來定位問題。 |
Access-Control-Allow-Origin
|
string | 否 |
如果請求的Origin滿足服務(wù)端的CORS配置,則在響應(yīng)中包含這個Origin。 類型:字符串 |
Access-Control-Allow-Headers
|
string | 否 |
如果請求的headers滿足服務(wù)端的CORS配置,則在響應(yīng)中包含這個headers。 類型:字符串 |
Access-Control-Max-Age
|
integer | 否 |
服務(wù)端CORS配置中的MaxAgeSeconds。 類型:整數(shù) |
Access-Control-Allow-Methods
|
string | 否 |
如果請求的Access-Control-Request-Method滿足服務(wù)端的CORS配置,則在響應(yīng)中包含這條rule中的Methods。 類型:字符串 有效值:GET、PUT、HEAD、POST 、DELETE |
Access-Control-Expose-Headers
|
string | 否 |
服務(wù)端CORS配置中的ExposeHeader。 類型:字符串 |
請求失敗響應(yīng)消息。 除了公共的錯誤碼外,此接口還會返回一些其他的錯誤碼。下面列出本接口的一些常見錯誤,以及可能原因。
錯誤碼 | 描述 | HTTP狀態(tài)碼 |
---|---|---|
Bad Request | Invalid Access-Control-Request-Method: null。桶配置了CORS,OPTIONS桶時,沒有加入method頭域。 | 400 Bad Request |
Bad Request | Insufficient information. Origin request header needed.桶配置了CORS,OPTIONS桶時,沒有加入origin頭域。 | 400 Bad Request |
請求失敗響應(yīng)消息。 除了公共的錯誤碼外,此接口還會返回一些其他的錯誤碼。下面列出本接口的一些常見錯誤,以及可能原因。
錯誤碼 | 描述 | HTTP狀態(tài)碼 |
---|---|---|
AccessForbidden | CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.桶配置了CORS,OPTIONS桶時,Origin、method、Headers與任一rule匹配不上。 | 403 Forbidden |