开发者社区 问答 正文

跨域资源共享 之GetBucketcors?

Get Bucket cors操作用于获取指定的Bucket目前的CORS规则。

请求语法GET /?cors HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue





响应元素(Response Elements)

名称描述
CORSRuleCORS规则的容器,每个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
CORSConfigurationBucket的CORS规则容器 类型:容器 父节点:无


细节分析

  1. 如果Bucket不存在,返回404 no content错误。错误码:NoSuchBucket。
  2. 只有Bucket的拥有者才能获取CORS规则,否则返回403 Forbidden错误,错误码:AccessDenied。
  3. 如果CORS规则不存在,返回404 Not Found错误,错误码NoSuchCORSConfiguration。


示例


[backcolor=transparent]请求示例: Get /?cors HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com  
Date: Thu, 13 Sep 2012 07:51:28 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfj byc: BuG4rRK+zNhH1AcF51NNHD39zXw=


[backcolor=transparent]已设置CORS规则的返回示例: HTTP/1.1 200
x-oss-request-id: 50519080C4689A033D00235F
Date: Thu, 13 Sep 2012 07:51:28 GMT
Connection: keep-alive
Content-Length: 218  
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
      <AllowedOrigin>*</AllowedOrigin>
      <AllowedMethod>GET</AllowedMethod>
      <AllowedHeader>*</AllowedHeader>
      <ExposeHeader>x-oss-test</ExposeHeader>
      <MaxAgeSeconds>100</MaxAgeSeconds>
    </CORSRule>
</CORSConfiguration>

展开
收起
青衫无名 2017-10-23 10:02:53 1723 分享 版权
0 条回答
写回答
取消 提交回答