对象存储BOS

    PutBucketCors

    接口描述

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

    权限说明

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

    请求

    • 请求语法

         PUT /?cors HTTP/1.1
         Host: <BucketName>.bj.bcebos.com
         x-bce-date: date
         Content-Length: content_length
         Content-Type: application/json; charset=utf-8
         Authorization: <AuthorizationString>
      
         {
             Cors json file …
         }
    • 请求参数

    • 请求头域

      无特殊Header参数

    • 请求元素

      Cors json文件包含如下字段:

      名称 描述 是否必需 父节点
      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 /?cors HTTP/1.1 
       Host: BucketName.bj.bcebos.com
       x-bce-date: 2016-04-06T08:23:49Z 
       Content-Length: 1024
       Content-Type: application/json; charset=utf-8
       Authorization: AuthorizationString
      
       {
           "corsConfiguration": [
                   {
                   "allowedOrigins": [
                       "http://www.example.com",
                       "www.example2.com"
                   ],
                   "allowedMethods": [
                           "GET",
                           "HEAD",
                           "DELETE"
                       ],
                    "allowedHeaders": [
                           "Authorization",
                           "x-bce-test",
                           "x-bce-test2"
                       ],
                   "allowedExposeHeaders": [
                        "user-custom-expose-header"
                   ],
                   "maxAgeSeconds": 3600
               },
               {	
                   "allowedOrigins": [
                       "http://www.baidu.com"
                   ],
                   "allowedMethods": [
                           "GET",
                           "HEAD",
                           "DELETE"
                       ],
                   "allowedHeaders": [
                           "*",
                   ],
                   "allowedExposeHeaders": [
                        "user-custom-expose-header"
                   ],
                   "maxAgeSeconds": 1800
               }
           ]
       }
    • 响应示例

           HTTP/1.1 200 OK
           x-bce-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
           Content-Length: 0
           Date: Wed, 06 Apr 2016 06:34:40 GMT
           Server: BceBos  
    上一篇
    数据加密
    下一篇
    GetBucketCors