CORS(跨域资源共享)是阿里云OSS服务中用于解决浏览器跨域请求问题的核心机制。通过合理配置CORS规则,可确保资源访问安全与功能正常。以下是关键要点:

1. CORS 的作用

  • 允许不同域的浏览器访问OSS资源(如图片、视频)
  • 防止跨站请求伪造(CSRF)攻击
  • 支持自定义请求头、方法和来源限制
OSS_CORS_配置界面

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,建议指定具体域名
  • 🛡️ 限制allowedMethodallowedHeader的范围
  • 📝 配置变更后需等待5-10分钟生效

如需深入理解CORS原理或排查问题,可参考 阿里云OSS官方文档 进行扩展阅读。