跨域資源共享CORS(Cross-Origin Resource Sharing)簡稱跨域訪問,是HTML5提供的標準跨域解決方案,允許Web應用服務器進行跨域訪問控制,確保跨域數據傳輸的安全性。本文介紹如何通過cors命令添加、修改、查詢、刪除存儲空間(Bucket)的CORS配置。
注意事項
要添加或修改CORS配置,您需要具有
oss:PutBucketCors
權限;要獲取CORS配置,您需要具有oss:GetBucketCors
權限;要刪除CORS配置,您需要具有oss:DeleteBucketCors
權限。具體操作,請參見為RAM用戶授權自定義的權限策略。
從ossutil 1.6.16版本開始,命令行中Binary名稱支持直接使用ossutil,您無需根據系統刷新Binary名稱。如果您的ossutil版本低于1.6.16,則需要根據系統刷新Binary名稱。更多信息,請參見命令行工具ossutil命令參考。
關于跨域資源共享的更多信息,請參見跨域資源共享。
添加或修改CORS配置
如果Bucket此前未添加過CORS配置,則使用該命令將為Bucket添加CORS配置。如果Bucket此前已添加CORS配置,則使用該命令將直接覆蓋已有的CORS配置。
添加或修改CORS配置步驟如下:
創建本地文件,并在文件中添加CORS規則。
ossutil先從本地文件中讀取CORS配置,然后將讀取到CORS配置添加到指定的Bucket。
添加或修改CORS配置的命令格式及示例如下:
命令格式
ossutil cors --method put oss://bucketname local_xml_file
參數說明如下:
參數
說明
bucketname
待添加或修改CORS配置的Bucket名稱。
local_xml_file
配置CORS規則的本地文件名稱,例如
localfile.txt
。使用示例
在本地創建名為
localfile.txt
文件,并根據使用場景配置CORS規則。如下示例表示在CORS規則中指定允許的跨域請求來源為
www.aliyun.com
、允許的跨域請求方法為PUT
以及瀏覽器對特定資源的預取(OPTIONS)請求返回結果的緩存時間為10000秒。<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration> <CORSRule> <AllowedOrigin>www.aliyun.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <MaxAgeSeconds>10000</MaxAgeSeconds> </CORSRule> </CORSConfiguration>
為examplebucket添加CORS規則。
ossutil cors --method put oss://examplebucket localfile.txt
以下輸出結果表明已成功添加CORS規則。
0.299514(s) elapsed
獲取CORS配置
命令格式
ossutil cors --method get oss://bucketname [local_xml_file]
參數說明如下:
參數
說明
bucketname
獲取CORS配置的目標Bucket名稱。
local_xml_file
用于存放CORS配置的本地文件名稱,例如
localfile.txt
。如果未指定此參數,則CORS配置將直接輸出到屏幕。使用示例
獲取目標存儲空間examplebucket的CORS配置。
ossutil cors --method get oss://examplebucket localfile.txt
以下輸出結果表明已成功獲取CORS配置,并將其寫入本地localfile.txt文件。
0.212407(s) elapsed
刪除CORS配置
命令格式
ossutil cors --method delete oss://bucketname
使用示例
刪除examplebucket的CORS配置。
ossutil cors --method delete oss://examplebucket
以下輸出結果表明已刪除examplebucket的CORS配置。
0.530750(s) elapsed
通用選項
當您需要通過命令行工具ossutil切換至另一個地域的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令行工具ossutil切換至另一個阿里云賬號下的Bucket時,可以通過-i選項指定該賬號的AccessKey ID,并通過-k選項指定該賬號的AccessKey Secret。
例如您需要為另一個阿里云賬號下,華東1(杭州)名為testbucket的Bucket添加CORS配置,命令如下:
ossutil cors --method put oss://testbucket localfile.txt -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關于此命令的其他通用選項的更多信息,請參見通用選項。