我的免费高速图床搭建记录:Cloudflare R2 + 自定义域名实战
我的免费高速图床搭建记录:Cloudflare R2 + 自定义域名实战
折腾了几天,终于把博客的图床给搞定了!现在,我的所有博客图片都存放在 Cloudflare R2 对象存储上,并通过自定义域名 img.hbw.me 来访问。整个过程踩了不少坑,但也学到了很多,特此记录一下。

🚀 为什么要自己搭图床? 以前写博客,图片直接上传到服务器空间,时间久了不仅占用空间,访问速度也慢,尤其是图片多的时候,页面加载简直让人抓狂。后来用过一些公共图床,但总担心哪天服务挂了或者图片被删。
所以,我一直想找一个稳定、快速、免费(或成本极低) 的方案。Cloudflare R2 完美符合我的需求:
免费额度大:每月 10GB 存储空间和 100 万次 A 类操作,对于个人博客来说完全够用。
没有出站流量费:这是最香的一点!把图片放在 R2,通过 Cloudflare CDN 访问,不收取流量费。
全球加速:Cloudflare 的边缘网络遍布全球,国内访问速度也相当不错。
🛠️ 搭建过程中遇到的那些坑 因为我的博客系统是 Typecho-CF(基于 Astro + Cloudflare Workers 重构的版本),所以图床配置和传统 Typecho 不太一样。中间遇到了几个让人头疼的问题:
上传失败,报 403 Forbidden:一开始以为是 R2 绑定错了,后来排查发现是 CSRF Token 校验 和 INSTALL_TOKEN 环境变量 不一致导致的。重新登录后台、清空 Cookie 后终于解决。
自定义域名配置:把 img.hbw.me 绑定到 R2 存储桶时,要确保 DNS 记录正确,并且要开启 Cloudflare 的 CDN 代理(小黄云)。
首页问题:R2 存储桶默认不会自动解析 index.html,所以我做了一个简单的导航页(访问 img.hbw.me/index.html 可以看到),专门用来提示“本域名用于图片存储”。
🎉 最终效果 现在,我可以在博客后台直接拖拽上传图片,上传成功后自动生成 https://img.hbw.me/... 的链接,直接插入文章即可。
例如:
图片链接:https://img.hbw.me/usr/uploads/2026/10/404_musc2nki.png
访问速度:非常快,基本上秒开。
💡 给想折腾的朋友一点建议 如果你也想用 Cloudflare R2 做图床:
一定要绑定自定义域名:不要用 R2 默认的 r2.dev 域名,那个有速率限制,而且不稳定。
注意 Token 校验:如果你用的是 Typecho-CF 或其他现代框架,一定要确保后台、环境变量、数据库里的 Token 完全一致。
做好备份:虽然 R2 很稳,但定期备份图片总是个好习惯。
折腾完这一套,我的博客终于实现了“图片自由”。以后可以放心地多放图了,哈哈!