方案简介
CloudFlare ImgBed 是一个能够基于 Cloudflare 生态构建图床的开源项目,充分利用了 Cloudflare 提供的免费计划,搭建一个具有上传、管理、读取、删除的全链路文件托管解决方案。其中:
- Cloudflare Pages 提供项目托管,支持绑定域名
- Cloudflare Works KV 提供项目配置
- Cloudflare R2 提供对象存储(需要绑定支付方式,但在免费额度内不扣费)
基于 Cloudflare 免费计划提供的额度,对于个人用户已经足够使用,且在国内拥有还不错的访问速度,可以说这个方案是目前搭建个人图床的最佳方案了。
部署 CloudFlare ImgBed
- 访问 CloudFlare ImgBed 项目,Fork 到自己的 Github 仓库
- 登录 Cloudflare Dashboard,进入 Workers 和 Pages 页面
- 创建一个 Pages 项目,导入刚才 Fork 的仓库
- 项目设置如下:
- 项目名称:
cloudflare-imgbed - 生产分支
main - 构建命令:
npm install - 构建输出目录:
/
- 项目名称:
- 保存并部署即可
创建 Cloudflare Workers KV 并绑定
- 登录 Cloudflare Dashboard,进入 Workers KV 页面
- 创建一个命名空间,命名为
img_url - 返回刚创建的 Pages 项目,进入设置页面,添加绑定一个 KV 命名空间
- 绑定刚创建的命名空间,变量名称
img_url
创建 Cloudflare R2 并绑定
- 登录 Cloudflare Dashboard,进入 R2 对象存储页面
- 创建一个存储桶,命名为
img_r2 - 返回刚创建的 Pages 项目,进入设置页面,添加绑定一个 R2 存储桶
- 绑定刚创建的存储桶,变量名称
img_r2
重新部署并设置管理员账户
- 返回刚创建的 Pages 项目,进入部署页面
- 找到最新的部署记录,重新部署一次
- 等待部署完成后,就可以通过 Pages 提供的域名访问图床了
- CloudFlare ImgBed 项目的管理后台默认无需密码,部署后需及时设置
其他补充说明
关于绑定域名
仅需绑定自定义域名到 Pages 项目即可(设置 CNAME 记录即可),无需绑定域名到 R2 存储桶。
如果要 R2 存储桶直接绑定自定义域名,则需要将域名的 DNS 托管给 Cloudflare 才可以。