Appearance
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参数
请求元素
名称 | 描述 | 是否必需 | 父节点 |
---|---|---|---|
corsConfiguration | Bucket的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