更新时间:2024-03-04 GMT+08:00

配置跨域资源共享

OBS提供HTML5协议中的CORS设置,帮助用户实现跨域访问。

您可以新建CORS规则,也可以从其他桶复制已有CORS规则。

前提条件

已经配置了静态网站托管,配置方法请参见配置静态网站托管

新建CORS规则

  1. OBS管理控制台左侧导航栏选择“对象存储”
  2. 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
  3. 在左侧导航栏,单击“概览”,进入“概览”页面。
  4. 在桶概览信息展示区域“基础配置”下,单击“CORS规则”卡片,系统跳转至“CORS规则”界面。

    图1 单桶概览>基础配置>CORS规则

    或您可以直接在左侧导航栏单击“访问权限控制>CORS规则”,进入“CORS规则”界面。

    图2 访问权限控制>CORS规则

  5. 单击“创建”,系统弹出“创建CORS规则”对话框,如图3所示。

    一个桶最多可设置100条CORS规则。

    图3 创建CORS规则

  6. 在“CORS规则”中配置“允许的来源”、“允许的方法”、“允许的头域”、“补充头域”和“缓存时间”。

    如果该OBS桶同时开启了CDN加速,CDN侧需配置HTTP header,详见HTTP header配置

    表1 CORS规则

    参数

    说明

    允许的来源

    必选参数,指定允许的跨域请求的来源,即允许来自该域名下的请求访问该桶。

    允许多条匹配规则,以回车换行为间隔。每个匹配规则允许使用最多一个“*”通配符。例如:

    http://rds.example.com
    https://*.vbs.example.com

    允许的方法

    必选参数,指定允许的跨域请求方法,即桶和对象的几种操作类型。包括:Get、Post、Put、Delete、Head。

    允许的头域

    可选参数,指定允许的跨域请求的头域。只有匹配上允许的头域中的配置,才被视为是合法的CORS请求。

    允许的头域可设置多个,多个头域之间换行隔开,每行最多可填写一个*符号,不支持&、:、<、空格以及中文字符。

    补充头域

    可选参数,指CORS响应中带的补充头域,给客户端提供额外的信息。

    默认情况下浏览器只能访问以下头域:Content-Length、Content-Type,如果需要访问其他头域,需要在补充头域中配置。

    补充头域可设置多个,多个头域之间换行隔开,不支持*、&、:、<、空格以及中文字符。

    缓存时间

    必选参数,请求来源的客户端可以缓存的CORS响应时间,以秒为单位,默认为100秒。

  7. 单击“确定”。

    “CORS规则”页签显示“创建CORS规则成功”提示创建桶的CORS配置成功。CORS配置会在两分钟内生效。

    CORS配置成功后,便仅允许跨域请求来源的地址通过允许的方法访问OBS的桶。例如:为桶“testbucket”允许的来源配置为“https://www.example.com”,允许的方法配置为“GET”,允许的头域和补充的头域配置为“*”,缓存时间设置为“100”,则OBS仅允许来源为“https://www.example.com”的“GET”请求访问桶“testbucket”,且不限制该请求的头域,请求来源的客户端可缓存的该CORS请求的响应时间为100秒。

复制CORS规则

  1. OBS管理控制台左侧导航栏选择“对象存储”
  2. 在OBS管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
  3. 在左侧导航栏,单击“概览”,进入“概览”页面。
  4. 在桶概览信息展示区域“基础配置”下,单击“CORS规则”卡片,系统跳转至“CORS规则”界面。

    或您可以直接在左侧导航栏单击“访问权限控制>CORS规则”,进入“CORS规则”界面。

  5. 单击“复制”。
  6. 选择复制源,即CORS规则所在的源桶。

    • 从源桶复制CORS规则的操作为增量复制,不会删除当前桶已存在的CORS规则,与已存在的CORS规则冲突的规则不会复制。
    • 源桶和目标桶的桶版本号都必须是3.0。
    • 您可以按需移除不需要复制的CORS规则。
    • 单桶CORS规则上限为100条,如果已有规则+复制规则的数量超过上限,将会复制失败,请先删除多余规则再进行复制。
    图4 复制CORS规则

  7. 单击“确定”,将源桶的CORS规则复制到当前桶。