Skip to content
大纲

PutBucketCors

接口描述

本接口用来在指定的Bucket上设定一个跨域资源共享(CORS)的规则,如果原规则存在则覆盖原规则。

权限说明

只有Bucket的所有者和被授予FULL_CONTROL权限的用户才能设置Bucket的CORS。没有权限时,返回403 Forbidden错误,错误码:AccessDenied。

请求

请求语法

PUT /<BucketName>?cors HTTP/1.1
Host: fos.flymeyun.com
x-fos-date: date
Content-Length: content_length
Content-Type: application/json; charset=utf-8

{
   Cors json file …
}

请求参数

请求头域

无特殊Header参数

请求元素

名称描述是否必需父节点
corsConfigurationBucket的CORS规则容器。每个Bucket最多允许有100条规则。如果有多条配置,执行顺序为从上到下。
allowedOrigins存储允许的跨域请求的来源的容器。corsConfiguration
allowedOrigin指定允许的跨域请求的来源,允许使用最多一个 * 通配符。
如果指定为 * 则表示允许所有的来源的跨域请求。特别的还支持 * 作为后缀来表示某一类网站比如abc*,则表示支持abc开头的网站。
注意:allowedOrigin匹配时大小写敏感。
类型:字符串
allowedOrigins
allowedMethods存储允许的跨域请求方法的容器。corsConfiguration
allowedMethod指定允许的跨域请求的方法,不支持通配符 *,大小写敏感。
类型:枚举,取值有“GET,PUT,DELETE,POST,HEAD”。
allowedMethods
allowedHeaders存储允许的allowedHeaders容器。控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否允许。corsConfiguration
allowedHeader控制在OPTIONS预取指令中Access-Control-Request-Headers头中指定的header是否允许。
在Access-Control-Request-Headers中指定的每个header都必须在allowedHeader中有一条对应的项。每一个header允许使用最多一个 * 通配符,不区分大小写。
类型:字符串。
allowedHeaders
allowedExposeHeaders存储允许用户从应用程序中访问的响应头的容器。corsConfiguration
allowedExposeHeader指定允许用户从应用程序中访问的响应头(例如一个Javascript的XMLHttpRequest对象)。不允许使用 * 通配符。
OPTIONS请求中将根据此定义设置Access-Control-Expose-Headers。
类型:字符串。
allowedExposeHeaders
maxAgeSeconds指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间,在缓存时间内请求方不必发送重复的preflight请求,单位为秒。
类型:Int64。
corsConfiguration

响应

响应头域

响应元素

注意事项

  • 通过此接口设置CORS规则之前,Bucket的CORS权限设置为不允许跨域。
  • 每个Bucket最多只允许有一个规则文件,因此新上传的规则文件会覆盖原有的。
  • CORS规则文件大小限制为20KB,因此请求时大于20KB会返回超出大小错误(400 Bad Request: EntityTooLarge)。

示例

请求示例

PUT /BucketName?cors HTTP/1.1
Host: fos.flymeyun.com
x-fos-date: 2016-04-06T08:23:49Z
Content-Length: 1024
Content-Type: application/json; charset=utf-8

{
   "corsConfiguration": [
           {
           "allowedOrigins": [
               "http://www.example.com",
               "www.example2.com"
           ],
           "allowedMethods": [
                   "GET",
                   "HEAD",
                   "DELETE"
               ],
            "allowedHeaders": [
                   "Authorization",
                   "x-fos-test",
                   "x-fos-test2"
               ],
           "allowedExposeHeaders": [
                "user-custom-expose-header"
           ],
           "maxAgeSeconds": 3600
       },
       {
           "allowedOrigins": [
               "http://www.flymeyun.com"
           ],
           "allowedMethods": [
                   "GET",
                   "HEAD",
                   "DELETE"
               ],
           "allowedHeaders": [
                   "*",
           ],
           "allowedExposeHeaders": [
                "user-custom-expose-header"
           ],
           "maxAgeSeconds": 1800
       }
   ]
}

响应示例

HTTP/1.1 200 OK
x-fos-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
Content-Length: 0
Date: Wed, 06 Apr 2016 06:34:40 GMT