174
阿裏雲
PutBucketcors__跨域資源共享_API 參考_對象存儲 OSS-阿裏雲
Put Bucket cors操作將在指定的bucket上設定一個跨域資源共享(CORS)的規則,如果原規則存在則覆蓋原規則。
請求語法
PUT /?cors HTTP/1.1
Date: GMT Date
Content-Length:ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>the origin you want allow CORS request from</AllowedOrigin>
<AllowedOrigin>…</AllowedOrigin>
<AllowedMethod>HTTP method</AllowedMethod>
<AllowedMethod>…</AllowedMethod>
<AllowedHeader> headers that allowed browser to send</AllowedHeader>
<AllowedHeader>…</AllowedHeader>
<ExposeHeader> headers in response that can access from client app</ExposeHeader>
<ExposeHeader>…</ExposeHeader>
<MaxAgeSeconds>time to cache pre-fight response</MaxAgeSeconds>
</CORSRule>
<CORSRule>
…
</CORSRule>
…
</CORSConfiguration >
請求元素(Request Elements)
名稱 | 描述 | 是否必須 |
---|---|---|
CORSRule | CORS規則的容器,每個bucket最多允許10條規則 類型:容器 父節點:CORSConfiguration |
是 |
AllowedOrigin | 指定允許的跨域請求的來源,允許使用多個元素來指定多個允許的來源。 允許使用最多一個“*”通配符。如果指定為“*”則表示允許所有的來源的跨域請求。 類型:字符串 父節點:CORSRule |
是 |
AllowedMethod | 指定允許的跨域請求方法。 類型:枚舉(GET,PUT,DELETE,POST,HEAD) 父節點:CORSRule |
是 |
AllowedHeader | 控製在OPTIONS預取指令中Access-Control-Request-Headers頭中指定的header是否允許。在Access-Control-Request-Headers中指定的每個header都必須在AllowedHeader中有一條對應的項。允許使用最多一個“*”通配符 類型:字符串 父節點:CORSRule |
否 |
ExposeHeader | 指定允許用戶從應用程序中訪問的響應頭(例如一個Javascript的XMLHttpRequest對象。)不允許使用“*”通配符。 類型:字符串 父節點:CORSRule |
否 |
MaxAgeSeconds | 指定瀏覽器對特定資源的預取(OPTIONS)請求返回結果的緩存時間,單位為秒。 一個CORSRule裏麵最多允許出現一個。 類型:整型 父節點:CORSRule |
否 |
CORSConfiguration | Bucket的CORS規則容器 類型:容器 父節點:無 |
是 |
細節分析
- 默認bucket是不開啟CORS功能,所有的跨域請求的origin都不被允許。
- 為了在應用程序中使用CORS功能,比如從一個www.a.com的網址通過瀏覽器的XMLHttpRequest功能來訪問OSS,需要通過本接口手動上傳CORS規則來開啟。該規則由XML文檔來描述。
- 每個bucket的CORS設定是由多條CORS規則指定的,每個bucket最多允許10條規則,上傳的XML文檔最多允許16KB大小。
- 當OSS收到一個跨域請求(或者OPTIONS請求),會讀取bucket對應的CORS規則,然後進行相應的權限檢查。OSS會依次檢查每一條規則,使用第一條匹配的規則來允許請求並返回對應的header。如果所有規則都匹配失敗則不附加任何CORS相關的header。
- CORS規則匹配成功必須滿足三個條件,首先,請求的Origin必須匹配一項AllowedOrigin項,其次,請求的方法(如GET,PUT等)或者OPTIONS請求的Access-Control-Request-Method頭對應的方法必須匹配一項AllowedMethod項,最後,OPTIONS請求的Access-Control-Request-Headers頭包含的每個header都必須匹配一項AllowedHeader項。
- 如果用戶上傳了Content-MD5請求頭,OSS會計算body的Content-MD5並檢查一致性,如果不一致,將返回InvalidDigest錯誤碼。
示例
添加bucket跨域訪問請求規則示例:
PUT /?cors HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length: 186
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://www.a.com</AllowedOrigin>
<AllowedOrigin>https://www.b.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader> Authorization</AllowedHeader>
<ExposeHeader>x-oss-test</ExposeHeader>
<ExposeHeader>x-oss-test1</ExposeHeader>
<MaxAgeSeconds>100</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration >
返回示例:
HTTP/1.1 200 OK
x-oss-request-id: 50519080C4689A033D00235F
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS
最後更新:2016-11-23 17:16:08
上一篇:
ListParts__關於MultipartUpload的操作_API 參考_對象存儲 OSS-阿裏雲
下一篇:
GetBucketcors__跨域資源共享_API 參考_對象存儲 OSS-阿裏雲
設備狀態__產品管理_控製台使用手冊_阿裏雲物聯網套件
設置讀寫權限__管理存儲空間_控製台用戶指南_對象存儲 OSS-阿裏雲
LogicalOperator__DataType_API 參考_表格存儲-阿裏雲
刪除賬號__賬號管理_API 參考_雲數據庫 RDS 版-阿裏雲
Windows服務器無法遠程登錄提示“試圖登錄 但是網絡登陸服務沒有啟動”__連接訪問_遠程桌麵_Windows操作運維問題_雲服務器 ECS-阿裏雲
HLS基礎接口__Media-C-SDK_SDK 參考_對象存儲 OSS-阿裏雲
獲取訪問者真實IP___常見接入問題_Web 應用防火牆-阿裏雲
雲服務器 ECS 升級內存
快遞_阿裏雲幫助中心-阿裏雲,領先的雲計算服務提供商
獲取區域和運營商列表__資源監控接口_API 手冊_CDN-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲