对象存储BOS

    OPTIONSObject

    接口描述

    浏览器在发送跨域请求之前会发送一个preflight请求(OPTIONS)并带上特定的来源域,HTTP方法和Header信息等给BOS以决定是否发送真正的请求,本接口即响应这种请求。

    权限说明

    OPTIONS Object操作不需要进行鉴权。

    请求

    • 请求语法

        OPTIONS /<ObjectKey> HTTP/1.1
        Host: <BucketName>.bj.bcebos.com
        Origin: Origin
        Access-Control-Request-Method: HTTPMethod
        Access-Control-Request-Headers: RequestHeader
    • 请求参数

    • 请求头域

      名称 描述 是否必需
      Origin 请求来源域,用来标识跨域请求,只允许一个方法。类型:字符串。默认值:无。
      Access-Control-Request-Method 在实际请求中将会用到的方法,只允许一个方法。类型:字符串。取值为“PUT/GET/DELETE/POST/HEAD”,无默认值。
      Access-Control-Request-Headers 在实际请求中会用到的除了简单头部之外的Headers,多个headers用逗号分割。类型:字符串。默认值:无。
    • 请求元素

    响应

    • 响应头域

      名称 描述
      Access-Control-Allow-Credentials BOS的Server端是否允许客户端在请求中带cookie。需要客户端和Server端同时允许才能生效。BOS在请求通过时会返回允许,即值为true,大小写敏感。
      Access-Control-Allow-Headers 允许请求携带的Header的列表,如果请求中有不被允许的Header,则CORS规则匹配失败,返回不包含任何Access-Control-开头的头部。多个Headers也用逗号分隔。注意:返回仅仅包括此次请求的Headers列表,而不管配置文件中是否配置了更多被允许的Headers。
      Access-Control-Allow-Methods 允许请求的HTTP方法,如果不允许该请求,则不包含该头部以及所有的Access-Control-*相关的头部。类型:字符串。注意:返回的是所有允许的allowedMethods列表,而不仅仅包括此次请求的method。
      Access-Control-Allow-Origin 请求中包含的Origin,如果不允许的话将不包含该头部以及所有的Access-Control-*相关的头部。类型:字符串。
      Access-Control-Expose-Headers 允许在请求端的JavaScript程序中访问的Headers的列表。与配置文件中的exposeHeaders对应。类型:字符串。
      Access-Control-Max-Age 允许浏览器缓存preflight结果的时间,单位为秒。类型:整形。
    • 响应元素

    注意事项

    • 当CORS收到OPTIONS请求后,会读取Bucket对应的CORS规则,然后进行相应的权限检查。整个检查会依次检查每一条规则,使用第一条匹配的规则来允许请求并返回对应的Header。如果所有规则都匹配失败则不附加任何CORS相关的Header。
    • CORS规则匹配成功必须满足三个条件:

      • 请求的Origin必须匹配一项allowedOrigins中一项。
      • OPTIONS请求的Access-Control-Request-Method头对应的方法必须匹配一项 allowedMethods中一项。
      • OPTIONS请求的Access-Control-Request-Headers头包含的每个Header都必须匹配一项 allowedHeader项(只要有一个不符合则整体失败)。

    示例

    • 请求示例

         OPTIONS /object HTTP/1.1
         Host: BucketName.bj.bcebos.com
         Origin: http://www.example.com
         Access-Control-Request-Method: GET
         Access-Control-Request-Headers: x-bce-test
    • 响应示例

        HTTP/1.1 200 OK
        x-bce-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
        Date: Wed, 06 Apr 2016 06:34:40 GMT
        Access-Control-Allow-Origin: http://www.example.com 
        Access-Control-Allow-Methods: GET, HEAD, DELETE 
        Access-Control-Allow-Headers: x-bce-test
        Access-Control-Expose-Headers: user-custom-expose-header
        Access-Control-Max-Age: 3600
        Access-Control-Allow-Credentials: true
        Content-Length: 0
        Server: BceBos
    上一篇
    GetBucketStorageClass
    下一篇
    权限控制