方案简介

CloudFlare ImgBed 是一个能够基于 Cloudflare 生态构建图床的开源项目,充分利用了 Cloudflare 提供的免费计划,搭建一个具有上传、管理、读取、删除的全链路文件托管解决方案。其中:

基于 Cloudflare 免费计划提供的额度,对于个人用户已经足够使用,且在国内拥有还不错的访问速度,可以说这个方案是目前搭建个人图床的最佳方案了。

部署 CloudFlare ImgBed

  1. 访问 CloudFlare ImgBed 项目,Fork 到自己的 Github 仓库
  2. 登录 Cloudflare Dashboard,进入 Workers 和 Pages 页面
  3. 创建一个 Pages 项目,导入刚才 Fork 的仓库
  4. 项目设置如下:
    • 项目名称:cloudflare-imgbed
    • 生产分支main
    • 构建命令:npm install
    • 构建输出目录:/
  5. 保存并部署即可

创建 Cloudflare Workers KV 并绑定

  1. 登录 Cloudflare Dashboard,进入 Workers KV 页面
  2. 创建一个命名空间,命名为img_url
  3. 返回刚创建的 Pages 项目,进入设置页面,添加绑定一个 KV 命名空间
  4. 绑定刚创建的命名空间,变量名称img_url

创建 Cloudflare R2 并绑定

  1. 登录 Cloudflare Dashboard,进入 R2 对象存储页面
  2. 创建一个存储桶,命名为img_r2
  3. 返回刚创建的 Pages 项目,进入设置页面,添加绑定一个 R2 存储桶
  4. 绑定刚创建的存储桶,变量名称img_r2

重新部署并设置管理员账户

  1. 返回刚创建的 Pages 项目,进入部署页面
  2. 找到最新的部署记录,重新部署一次
  3. 等待部署完成后,就可以通过 Pages 提供的域名访问图床了
  4. CloudFlare ImgBed 项目的管理后台默认无需密码,部署后需及时设置

其他补充说明

关于绑定域名

仅需绑定自定义域名到 Pages 项目即可(设置 CNAME 记录即可),无需绑定域名到 R2 存储桶。

如果要 R2 存储桶直接绑定自定义域名,则需要将域名的 DNS 托管给 Cloudflare 才可以。

参考资料