阿里云对象存储服务(Object Storage Service, OSS)的跨域资源共享(CORS Configuration)是指一种安全机制,允许您配置OSS bucket以便从不同的域名或源发起的Web浏览器请求能够成功获取存储在OSS中的资源。由于浏览器的安全策略(即同源策略,Same-Origin Policy,SOP),通常情况下,一个网页加载的脚本不能访问另一个源(不同域名、协议或端口)的内容,除非该源明确授权。
在OSS中设置CORS的具体步骤包括:
定义CORS规则:
- 允许的来源(Allowed Origins):指定允许跨域请求的源域名列表,可以是单个域名或通配符
*
来代表任何域名。 - 允许的方法(Allowed Methods):列出允许的HTTP方法,如GET、POST、PUT、DELETE等。
- 允许的头部(Allowed Headers):指定客户端在预检请求(OPTIONS)中可以设置的HTTP请求头列表,也可以设置为
*
表示允许所有请求头。 - 暴露的头部(Exposed Headers):指定服务端返回时,浏览器允许访问的响应头。
- 预检请求缓存时间(Max Age):设置预检请求结果的有效期,减少不必要的重复预检请求。
- 允许的来源(Allowed Origins):指定允许跨域请求的源域名列表,可以是单个域名或通配符
配置CORS:
登录阿里云OSS控制台,找到对应的Bucket,进入CORS设置界面,并添加上述规则。
例如,一个基本的CORS配置可能如下所示:
[
{
"AllowedOrigins": ["http://www.example.com", "https://www.example.net"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE"],
"AllowedHeaders": ["Authorization", "Content-Type"],
"ExposeHeaders": ["ETag", "x-oss-meta-*"],
"MaxAgeSeconds": 3600
}
]
正确配置CORS之后,当浏览器发起跨域请求时,OSS将根据这些规则判断是否允许该请求,并在响应中包含适当的CORS相关HTTP头信息,使得浏览器能够顺利处理来自OSS的跨域数据。