cors-options(检测跨域请求)

跨域资源共享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

实际请求中用到的方法,对应请求头Access-Control-Request-Method。可选值为GETPUTPOSTDELETEHEAD

--origin

标识跨域请求的来源域。例如http://www.aliyun.com

--acr-headers

实际请求中用到的除了简单头部之外的Header,对应请求头Access-Control-Request-Headers。您可以在请求中设置多个Header,多个Header之间使用英文逗号(,)分隔。例如--acr-headers "header1,header2,header3"

使用示例

以下示例用于检测目标存储空间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****

关于此命令的其他通用选项的更多信息,请参见通用选项