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

Cloudflare CNAME指向AWS S3 Bucket报NoSuchBucket错误求助

解决S3 Bucket通过Cloudflare CNAME访问时的NoSuchBucket错误

出现这个错误的核心原因是:Cloudflare转发请求时,会将Host头设置为你的自定义域名assets.my-site.com,而AWS S3默认会通过Host头的值识别要访问的桶名,所以它会尝试查找名为assets.my-site.com的桶,自然返回不存在的错误。

下面是两种可行的解决方法:

方法1:通过Cloudflare页面规则修改请求Host头

  • 登录Cloudflare控制台,找到对应域名进入「页面规则」页面
  • 新建规则,匹配路径填写 assets.my-site.com/*
  • 添加设置项:选择「自定义Host头」,将值设置为你的S3桶完整REST端点域名(例如 bucket-name.s3.amazonaws.com)
  • 保存规则并等待生效,此时Cloudflare会将请求的Host头替换为正确的桶域名,S3就能识别到目标桶

方法2:启用S3静态网站托管并匹配域名

  • 先将你的S3桶名称修改为assets.my-site.com(S3静态网站托管要求桶名必须与自定义域名完全一致)
  • 在S3控制台的桶设置中,启用「静态网站托管」,记录生成的网站端点(例如 assets.my-site.com.s3-website-us-east-1.amazonaws.com)
  • 在Cloudflare中将CNAME记录assets.my-site.com指向这个网站端点,而非S3的REST端点
  • 确保S3的「阻止公共访问」设置已关闭,且桶策略配置了允许公共读取的权限

补充验证步骤

修改配置后,直接访问assets.my-site.com检查是否能正常加载资源;如果仍有问题,可使用curl -v assets.my-site.com查看请求的Host头是否正确设置为目标桶的域名。

内容的提问来源于stack exchange,提问作者Jason McFarlane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:37:10