QingStor 支持跨源资源共享 (CORS)

跨源资源共享 (Cross-Origin Resource Sharing,简称 CORS) 是 HTML5 提供的标准跨源解决方案,具体可以参考 W3C CORS规范

QingStor 已经支持 CORS ,可以允许您对 QingStor 下的存储空间 (Bucket) 进行 CORS 规则的配置, 从而可以创建直接与 QingStor 进行富交互的 web application,以及限制源对您在 QingStor 中资源的访问,参考 QingStor Bucket CORS

典型场景和示例

当浏览器端使用 AJAX 直接访问 QingStor 的数据时,则需要利用 CORS 来实现跨源浏览器与 QingStor 直接通信。

例如,网站的某些静态图片资源存储在 QingStor 的 “images” 这个 bucket 中。如果网站想利用 JavaScript AJAX 取回或者上传图片。当向 bucket 直接发起 GET, POST 请求时,是不被允许的。此时则需要设置 CORS 的规则。

设置示例

主要配置项:

  • allowed_origin
    用户所期望的跨源请求来源,可以用 “*” 来进行通配
  • allowed_methods
    设置源所允许的 HTTP 方法。可指定以下值的组合: “GET”, “PUT”, “POST”, “DELETE”, “HEAD”, 或者使用 “*” 来进行设置
  • allowed_headers
    设置源所允许的 HTTP header 。 可以用 “*” 来进行通配
  • expose_headers
    设置客户能够从其应用程序(例如从 JavaScript XMLHttpRequest 对象)进行访问的 HTTP 响应头
  • max_age_seconds
    设置在预检请求(Options)被资源、HTTP 方法和源识别之后,浏览器将为预检请求缓存响应的时间(以秒为单位)

操作流程:

  1. 在 bucket 页面点击设置 -> CORS -> 添加请求源qingstor_cors_0
  2. 配置添加请求源qingstor_cors_1
  3. 配置完成
    qingstor_cors_2

以上示例配置, 将使您从 http://your-domain.com 发出的对 QingStor bucket 的 AJAX 跨源 GET, POST 请求成功执行,同时缓存预检请求300s,并能从 AJAX 的返回结果中访问到任意的 HTTP header。