最近在分享外链的时候发现图片无法加载,做SEO的时候也发现搜索工具没有办法抓取到图片。
经常写博客、做内容分享的朋友肯定都懂,一个稳定、免费、速度快的图床,真的是刚需。
今天就给大家分享一套,完全用 Cloudflare 免费资源搭建的图床方案,再配合 EdgeOne 全球加速,做到零成本、高可用、全球访问都快。全程都是可视化操作,跟着一步步来,新手也能轻松搞定。
一、前期准备
开始之前,先把这几样准备好,避免做到一半卡住:
- 注册好 Cloudflare 账号,并且完成实名认证(免费额度正常用,全程不用花钱)
- 准备一个已经托管在 Cloudflare 的域名,后面用来绑自定义访问地址
- 把
cloudflare-imgbed这个官方项目,Fork 到你自己的 GitHub/GitLab 账号,方便后面用 Pages 部署
二、通过 Cloudflare Pages 部署项目
这是整个搭建的核心步骤,直接拉代码构建,不用单独买服务器。
登录 Cloudflare 控制台,在左侧菜单找到「Workers 和 Pages」,点击「创建应用程序」,选择 Pages。
然后选择「连接到 Github」,授权绑定你的 GitHub 账号,选中你刚才 Fork 好的 cloudflare-imgbed 仓库。
配置项目设置
| 配置项 | 值 | 说明 |
|---|---|---|
| 项目名称 | cloudflare-imgbed(自定义) | 项目标识符 |
| 生产分支 | main | 生产环境分支 |
| 构建命令 | npm install | 构建命令 |
| 构建输出目录 | /frontend-dist | 前端构建产物目录 |
三、绑定 D1 数据库与 R2 存储桶
这个图床的原理很简单:用 D1 存图片的元数据,R2 存图片原文件,两个都有免费额度,个人日常用完全足够。
【展开】创建并绑定 D1 数据库
创建 D1 数据库
- 在 Cloudflare Dashboard 中选择 “存储和数据库”
- 点击 “D1 SQL 数据库”
- 点击 “创建数据库”
- 输入数据库名称:
img_d1(建议使用此名称)- 点击 “创建”
初始化 D1 数据库
- 创建完成后,点击进入数据库详情页
- 选择 “控制台” 选项卡
- 在 SQL 输入框中粘贴并执行注释区域以下的内容(见项目仓库)
- 点击 “执行”
绑定 D1 到项目
- 返回您的 Pages 项目
- 选择 “设置” → “绑定”
- 点击 “添加” → “D1 数据库”
- 填写绑定信息:
- 变量名称:
img_d1(必须是这个名称)- D1 数据库:选择刚创建的数据库
- 点击 “保存”
【展开】创建并绑定 R2 存储桶
创建 R2 储存桶
- 在 Cloudflare Dashboard 中选择 “存储和数据库”
- 点击 “R2 对象存储”,地域默认或选择亚太。
- 点击 “创建存储桶”
- 存储桶名称:
img_R2(可以自定义)- 点击 “创建”
在项目设置中绑定 R2 存储桶:
- 选择 “设置” → “绑定”
- 添加 “R2 存储桶”
- 变量名称:
img_r2(必须是这个名称)- R2 存储桶:选择已创建的存储桶
四、重新构建并验证
绑定完资源之后,一定要重新构建,配置才会生效。
回到 Pages 项目的部署页面,找到最近的部署记录,点「重新部署」。
等 1–2 分钟构建完成,Cloudflare 会自动给你生成一个免费域名,格式是 xxx.pages.dev。
打开这个域名,进入图床后台。
在管理后台配置:
- 进入 “系统设置” → “上传设置”
- 配置 R2 渠道参数
- 如需图像审查,填入 R2 公开访问链接
打开这个域名,进入图床后台。
上传一张测试图片,生成访问链接。
直接打开链接,如果图片能正常加载,就说明基础部署成功,D1 和 R2 配置都没问题。
五、绑定自定义域名
Cloudflare 默认的 Pages 域名,访问速度一般,建议绑上自己的域名,更好用也更好记。
再回到 Pages 项目,进入「自定义域」,点击「设置自定义域」,输入你想用来做图床的二级域名,比如 img.xxx.com。
系统会自动生成 CNAME 解析记录,按照信息在你的DNS解析服务商添加解析。
等几分钟 DNS 生效,用自定义域名访问一下,能正常项目的部署流程就搞定了。
六、配置 EdgeOne 全球加速
由于 Cloudflare 服务在国内访问存在不稳定、延迟波动的问题,为进一步提升图床的全球访问速度与稳定性,可搭配 EdgeOne 进行全球加速。
登录 EdgeOne 控制台,进入「域名管理」页面。
在 EdgeOne 中添加加速域名:
加速域名:
img.xxx.com(与 Cloudflare Pages 项目中设置的自定义域名保持一致)源站配置:
cloudflare-imgbed-dwh.pages.dev(即 Pages 项目分配的默认域名)注:这一步的本质,就是把你在 DNS 服务商处配置的解析规则,在 EdgeOne 里重新配置一遍。
配置完成后,复制 EdgeOne 提供的 CNAME 解析地址。
回到你的 DNS 服务商后台,将
img.xxx.com子域名的 CNAME 解析记录值,从原来的cloudflare-imgbed-dwh.pages.dev修改为复制的 EdgeOne CNAME 地址。额外优化:在 EdgeOne 控制台中开启图片优化、缓存加速,并配置 HTTPS 加密,能显著提升访问体验。
简而言之:先在 Pages 项目中配置好自定义域名,再将该域名接入 EdgeOne,最终让用户的访问请求全部通过 EdgeOne 节点中转,从而实现全球加速。
七、部署完成与效果验证
到这里,整套图床就全部搭建完成了。可以再上传一张测试图片,用自定义域名 + EdgeOne 加速的链接测试一下。
在不同地区、不同网络下打开,速度对比原生 Pages 域名,会有很明显的提升。
平时可以偶尔看下 D1、R2 的免费额度使用情况,个人日常发图、写博客,基本不可能超限额。
整个流程不算复杂,一步步跟着做,就能拥有一个属于自己的专属高速图床。







