设置桶的跨域资源共享CORS规则

此 PUT 操作用于为指定的存储空间(Bucket)设置跨域资源共享CORS(Cross-Origin Resource Sharing)规则。

请求

  • 请求语法

    • 内容

        PUT /?cors HTTP/1.1
        Host: {BucketName}.{Endpoint}
        Content-Length: {length}
        Date: {date}
        Authorization: {SignatureValue} 
        Content-Type: application/xml
      
        <?xml version="1.0" encoding="UTF-8"?>
        <CORSConfiguration>
            <CORSRule>
                <ID>the CORS rule ID</ID>
                <AllowedOrigin>the origin you want allow CORS request from</AllowedOrigin>
                <AllowedOrigin>…</AllowedOrigin>
                <AllowedMethod>HTTP method</AllowedMethod>
                <AllowedMethod>…</AllowedMethod>
                <AllowedHeader> headers that allowed browser to send</AllowedHeader>
                <AllowedHeader>…</AllowedHeader>
                <ExposeHeader> headers in response that can access from client app</ExposeHeader>
                <ExposeHeader>…</ExposeHeader>
                <MaxAgeSeconds>time to cache pre-fight response</MaxAgeSeconds>
            </CORSRule>
            <CORSRule>
                …
            </CORSRule>
                …
        </CORSConfiguration >
      
    • 描述

        Endpoint:参考与region地域的关系
        SignatureValue:参考签名算法
      
  • 请求参数

  • 非公共请求头

  • 请求体

名称 类型 是否必须 描述
CORSRule 容器 CORS规则的容器。
每个Bucket默认支持配置100条CORS规则。上传的XML文档大小最大允许1M。
父节点:CORSConfiguration
ID 字符串 CORS规则的ID。
父节点: CORSRule
AllowedOrigin 字符串 指定允许的跨域请求来源。 OSS支持使用多个元素来指定多个允许的来源。
AllowedOrigin中只能使用一个星号(*)通配符。如果指定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)请求返回结果的缓存时间。单位为秒。
单条CORS规则仅允许一个MaxAgeSeconds。
父节点:CORSRule
CORSConfiguration 容器 Bucket的CORS规则容器。
父节点:无

响应

  • 非公共响应头

  • 响应体

示例

  • 请求

      PUT /?cors HTTP/1.1
      Host: oss-example.oss-cn-beijing.inspurcloud.com
      Authorization: authorization string
      Content-Length: {length}
      Date: Wed, 29 Oct 2020 22:32:00 GMT    
    
      <?xml version="1.0" encoding="UTF-8"?>
      <CORSConfiguration>
          <CORSRule>
              <ID>123</ID>
              <AllowedOrigin>*</AllowedOrigin>
              <AllowedMethod>PUT</AllowedMethod>
              <AllowedMethod>GET</AllowedMethod>
              <AllowedHeader>Authorization</AllowedHeader>
          </CORSRule>
      </CORSConfiguration>
    
  • 响应

      HTTP/1.1 200 OK
      Date: Wed, 29 Oct 2020 22:32:00 GMT
      Content-Length: 0
      Connection: keep-alive                                                  
    

错误码

错误码 状态码 描述
InvalidDigest 400 上传了Content-MD5请求头后,OSS会计算消息体的Content-MD5并检查一致性,如果不一致则返回此错误码。