You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过BunnyCDN配合AWS S3实现HLS加密视频流的CORS问题排查求助

故障排查与修复方案

以下是你需要逐一核对的配置错误点:

1. 优先清理BunnyCDN全量缓存

BunnyCDN会将S3返回的响应头(含CORS头)和资源一起缓存,如果配置CORS前已有相关资源(m3u8/ts/key)被缓存,旧的无CORS头的响应会持续返回直到缓存过期。你需要先进入对应Pull Zone的Purge面板,清空所有缓存后再测试。

2. 修正BunnyCDN的CORS配置方式

不要通过自定义响应头配置CORS规则,BunnyCDN有原生CORS配置项优先级更高:

  • 进入Pull Zone设置 → 找到「CORS」配置板块
  • 添加允许的源站:https://my-domain.com(不需要加CDN自身域名)
  • 勾选允许的请求方法:GET、HEAD
  • 开启Allow Credentials选项(匹配你的请求凭据模式为true的要求)
  • 保存配置后等待规则生效

3. 修正S3的CORS规则配置

你当前的S3 CORS配置在带凭据的请求场景下存在不生效的问题,修正后的参考规则如下:

[
    {
        "AllowedHeaders": [
            "Accept",
            "Range",
            "Content-Type"
        ],
        "AllowedMethods": [
            "GET",
            "HEAD"
        ],
        "AllowedOrigins": [
            "https://my-domain.com"
        ],
        "ExposeHeaders": [
            "Content-Length",
            "Content-Range"
        ],
        "MaxAgeSeconds": 3000
    }
]

修正点说明:

  • 带凭据的请求不允许AllowedHeaders使用通配符*,需要明确列出前端请求实际携带的请求头
  • 移除了不需要的PUT、POST方法和https://ovb-video.b-cdn.net源站(CORS校验的是前端发起请求的源站,CDN域名不属于请求源)
  • 补充了ExposeHeaders配置,允许浏览器读取HLS拉流需要的响应头
  • 新增MaxAgeSeconds减少重复预检请求的频率

4. 确认CDN缓存键配置

检查BunnyCDN的缓存设置,确保没有开启「忽略查询参数」选项,你的请求URL中携带的bcdn_token等参数需要被纳入缓存键,避免不同源的请求拿到错误的缓存响应头。


内容的提问来源于stack exchange,提问作者Faisal Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:54:03