CORS(跨域资源共享)是阿里云OSS服务中用于解决浏览器跨域请求问题的核心机制。通过合理配置CORS规则,可确保资源访问安全与功能正常。以下是关键要点:
1. CORS 的作用
- 允许不同域的浏览器访问OSS资源(如图片、视频)
- 防止跨站请求伪造(CSRF)攻击
- 支持自定义请求头、方法和来源限制
2. 配置方法
- 控制台操作:进入 OSS管理控制台 → 选择存储桶 → 高级设置 → CORS配置
- API操作:通过
PUT bucketCors
接口设置规则 - 代码示例(Python):
import oss2 auth = oss2.Auth('<your-access-key-id>', '<your-access-key-secret>') bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<your-bucket-name>') bucket.put_cors_rules([ { 'allowedOrigin': ['https://example.com'], 'allowedMethod': ['GET', 'POST'], 'allowedHeader': ['*'], 'maxAgeSeconds': 3600 } ])
3. 配置项说明
- ✅
allowedOrigin
:允许访问的域名(支持通配符*
) - ✅
allowedMethod
:支持的HTTP方法(GET/POST/PUT/DELETE等) - ✅
allowedHeader
:允许的自定义请求头(如Authorization
) - ⚠️
exposeHeaders
:指定可暴露给前端的头信息 - ⏱️
maxAgeSeconds
:预检请求的缓存时间(减少重复请求)
4. 常见问题
- ❌ 浏览器报错
CORS request failed
:检查allowedOrigin
是否匹配请求域名 - ❌ 配置后仍无法访问:确认规则是否在存储桶的
CORS
列表中生效 - ✅ 配置示例:点击查看完整配置模板
5. 安全建议
- 🔒 避免使用
*
作为allowedOrigin
,建议指定具体域名 - 🛡️ 限制
allowedMethod
与allowedHeader
的范围 - 📝 配置变更后需等待5-10分钟生效
如需深入理解CORS原理或排查问题,可参考 阿里云OSS官方文档 进行扩展阅读。