跨域資源共享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****
關于此命令的其他通用選項的更多信息,請參見通用選項。