九游平台/ 对象存储服务 obs/ / / 配置cors实现跨域访问obs
更新时间:2024-06-26 gmt 08:00

配置cors实现跨域访问obs-九游平台

obs提供html5协议中的cors设置,帮助用户实现跨域访问。

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

背景知识

跨域是指不同域名之间相互访问。

跨域访问是浏览器出于安全考虑而设置的一个限制,即同源策略。由于javascript同源策略的限制,a域名下的javascript无法操作b域名或c域名下的对象。

同协议、同域名(或ip)、以及同端口视为同一个域。两个页面的协议、域名和端口(如果指定了端口)相同,则视为同源。为了更好的理解是否同源,您可以查看表1中相对https://support.huaweicloud.com/dir/test.html的同源检测示例。

表1 同源检测示例

url

访问结果

原因

https://support.huaweicloud.com/dir/other.html

成功

协议、域名、端口都相同

https://support.huaweicloud.com/dir/inner/other.html

成功

协议、域名、端口都相同

http://support.huaweicloud.com/dir/test.html

失败

域名、端口相同,协议不同

https://support.huaweicloud.com:81/dir/test.html

失败

协议、域名相同,端口不同

https://help.huaweicloud.com/dir/test.html

失败

协议、端口相同,域名不同

使用场景

跨域资源共享(cross origin resource sharing,cors)是由w3c标准化组织提出的一种网络浏览器的规范机制,定义了一个域中加载的客户端web应用程序与另一个域中的资源交互的方式。而在通常的网页请求中,由于同源安全策略(same origin policy,sop)的存在,不同域之间的网站脚本和内容是无法进行交互的。

obs支持cors规范,允许跨域请求访问obs中的资源。

obs支持,而只有当对该桶设置了合理的cors配置,obs中保存的静态网站才能允许响应另一个跨域网站的请求。

cors的典型应用场景包括:
  • 通过cors支持,使用javascript和html5来构建web应用,直接访问obs中的资源,而不再需要代理服务器做中转。
  • 使用html5中的拖拽功能,直接向obs上传文件,展示上传进度,或是直接从web应用中更新内容。
  • 托管在不同域中的外部网页、样式表和html5应用,现在可以引用存储在obs中的web字体或图片,让这些资源能被多个网站共享。

cors配置会在两分钟内生效。

obs系统提供的默认配置为根域名跨域访问允许所有域访问,会使客户端存在被攻击的风险。

客户端可通过在自己的桶内创建配有自己规则的crossdomain.xml,并在其flash代码中添加security.loadpolicyfile("https://bucket.obs.cn-north-4.myhuaweicloud.com/crossdomain.xml"),从而避免被攻击的风险。其中,bucket.obs.cn-north-4.myhuaweicloud.com需根据实际情况替换为自己桶的访问域名。

前提条件

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

新建cors规则

obs支持通过控制台、api、sdk方式新建cors规则,不支持通过obs browser 、obsutil方式新建cors规则。

复制cors规则

obs支持通过控制台方式复制cors规则,不支持通过api、sdk、obs browser 、obsutil方式复制cors规则。

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

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

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

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

相关文档

网站地图