跨域資源共用CORS(Cross-Origin Resource Sharing)簡稱跨域訪問,是HTML5提供的標準跨域解決方案,允許Web應用伺服器進行跨域存取控制,確保跨域資料轉送的安全性。cors-options命令通過向OSS發送HTTP OPTIONS請求的方式,用來檢測指定的跨域訪問請求是否被允許。
從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考。
關於添加CORS配置的具體步驟,請參見cors(跨域資源共用)。
命令格式
ossutil cors-options oss://bucketname/[objectname]
[--acr-method <value>]
[--origin <value>]
[--acr-headers <value>]
參數和選項說明如下:
配置項 | 說明 |
bucketname | 請求訪問的Bucket名稱。 |
objectname | 請求訪問的Object名稱。 |
--acr-method | 實際請求中用到的方法,對應要求標頭 |
--origin | 標識跨域請求的來源域。例如 |
--acr-headers | 實際請求中用到的除了簡單頭部之外的Header,對應要求標頭 |
使用樣本
以下樣本用於檢測目標儲存空間examplebucket是否允許指定來源域為http://www.aliyun.com
,要求方法為PUT
的跨域訪問請求。
ossutil cors-options --acr-method put --origin "http://www.aliyun.com" oss://examplebucket
如果examplebucket允許該跨域訪問請求,則返回結果將包含如下資訊。
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 0
0.079520(s) elapsed
如果examplebucket不允許該跨域訪問請求,則返回結果將包含如下資訊。
Error: oss: service returned error: StatusCode=403, ErrorCode=AccessForbidden, ErrorMessage="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.", RequestId=60F7F55F553DA2363138****
通用選項
例如,您需要將另一個阿里雲帳號下,華東2(上海)地區下源儲存空間examplebucket的檔案夾srcfolder同步至目標儲存空間testbucket的檔案夾examplefolder,命令如下:
ossutil sync oss://examplebucket/srcfolder/ oss://testbucket/examplefolder/ -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
例如,您需要檢測另一個阿里雲帳號下,華東1(杭州)地區名為testbucket的Bucket是否允許指定來源域為http://www.alibabacloud.com
,要求方法為PUT
的跨域訪問請求,命令如下:
ossutil cors-options --acr-method put --origin "http://www.alibabacloud.com" oss:/testbucket -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關於此命令的其他通用選項的更多資訊,請參見通用選項。