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

S3存储桶上传新图片后静态网站无法加载问题求助

解决S3静态网站新图片404(NoSuchKey)问题

针对你遇到的新图片加载404问题,结合已排查的点和异常现象,给出以下针对性解决方案:

  • 核对S3对象键的大小写完全匹配
    S3对象键是严格大小写敏感的,而本地系统(Windows/macOS)默认不区分文件名大小写。你控制台报错的Key是images/parking-winds-V2.PNG,务必确认S3桶中实际存储的文件名大小写完全一致——比如是否是parking-winds-v2.png(小写v2或后缀png)。同时检查Github Action同步脚本是否无意中修改了文件名的大小写。

  • 排查Cloudflare缓存与规则干扰
    尽管你清空了Cloudflare缓存,但可能存在缓存键大小写不匹配的问题:Cloudflare默认缓存键区分大小写,若之前存在大小写不同的同名文件缓存条目,会导致请求匹配错误。可以尝试:

    1. 在Cloudflare「缓存规则」中,针对/images/*路径设置「缓存级别」为「忽略查询字符串」;
    2. 临时开启Cloudflare「开发模式」(持续3小时),绕过缓存直接请求源站测试;
    3. 检查是否存在页面规则设置了URL重写、转发,导致图片请求路径被修改。
  • 修正S3静态网站托管配置

    1. 先上传error.html到桶根目录:虽然这不是图片404的直接原因,但S3在处理错误时若找不到自定义错误文档,可能引发路径解析异常;
    2. 确认CNAME指向的是S3静态网站托管端点(格式为www.jamesedens.me.s3-website-<区域>.amazonaws.com),而非S3 REST API域名(www.jamesedens.me.s3.amazonaws.com)——两类端点的路径解析逻辑不同,REST域名对大小写敏感的处理更严格,容易引发NoSuchKey错误。
  • 彻底清除浏览器隐性缓存
    普通缓存清除可能残留硬缓存,尝试:

    • 打开Chrome开发者工具→「网络」面板,勾选「禁用缓存」后刷新页面;
    • 使用Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac)强制刷新,绕过本地缓存。
  • 验证Github Action同步的完整性
    查看Github Action的执行日志,确认图片文件是否完整上传到S3,同步过程中是否有报错或中断情况。S3本身上传后立即可读,同步延迟的可能性极低,但需排除同步脚本的原子性问题(比如先删后传导致的短暂404)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:18:12