今天写个部署CloudFlare ImgBed三月图床的教程。
CloudFlare ImgBed 是一个支持 Docker 与 Serverless 部署的开源图床和文件托管方案,可将 Telegram、Discord、Cloudflare R2、S3 兼容存储、Hugging Face 和 WebDAV 等后端统一接入一个管理界面。项目提供上传、读取、目录与标签管理、身份认证、内容审查、HTTP API、WebDAV 和公开浏览等能力,适用于个人图床、网站资源管理和轻量文件分发。
项目支持使用不同的存储渠道作为后端存储,每种渠道有不同的优缺点和限制,您可以根据自己的需求选择合适的渠道。
| 渠道类型 | 优点 | 限制 |
|---|---|---|
| Telegram Bot | 完全免费、无限容量 | 大于20MB文件需分片存储 |
| Cloudflare R2 | 无文件大小限制、企业级性能 | 超出10G免费额度后收费,需要绑定支付方式 |
| S3 兼容存储 | 选择多样、价格灵活 | 根据服务商定价 |
| Discord | 完全免费、简单易用 | 大于10MB文件需分片存储 |
| HuggingFace | 完全免费、支持大文件直传 | 需要 HuggingFace 账号 |
| WebDAV | 兼容性广、支持自建存储 | 根据服务商定价 |
不废话了,本次部署教程为在cloudflare上部署三月图床和对接HuggingFace。当然你有开通Cloudflare R2也可以对接上。
本教程整备工作。一个cloudflare账号、一个GitHub账号、一个HuggingFace账号。如果要对接其他接口,你需要准备对应账号。
首先用的你GitHub账号去fork个项目,项目地址:https://github.com/MarSeventh/CloudFlare-ImgBed
然后登录cloudflare,然后去部署,这里有两种部署方式,第一个就是cloudflare pages部署,第二个是Cloudflare Workers 部署是 Pages 部署之外的另一种 Serverless 部署方式。与 Pages 相比,Workers 提供更灵活的路由控制和更高的自定义能力,适合需要精细控制部署流程的用户。
Pages vs Workers
- Pages 部署:更简单,适合大多数用户,通过 Cloudflare Dashboard 可视化操作即可完成,支持自动更新
- Workers 部署:通过 GitHub Actions 部署,适合熟悉 CI/CD 流程的用户,支持 push 到 main 分支时自动部署,也可手动触发
两种方式功能完全一致,选择适合自己的即可。
本次我们就用pages部署


这里要注意了,我们需要创建个pages 所以要点我键号哪里创建pages(我电脑问题,显示不全,看不到创建pages按钮),不然就是创建worker了。


链接我们前面fork项目的GitHub账户即可。


项目设置
| 配置项 | 值 | 说明 |
|---|---|---|
| 项目名称 | cloudflare-imgbed(或自定义) | 项目标识符 |
| 生产分支 | main | 生产环境分支 |
| 构建命令 | npm install | 重要:v2.0 新构建命令 |
| 构建输出目录 | /frontend-dist | 前端构建产物目录 |

点击 “保存并部署” 等待首次部署完成(约 2-3 分钟左右)
配置数据库
数据库用于存储文件元数据,是必需的组件,可选数据库为 KV 数据库和 D1 数据库。两者对比如下表所示,根据自己使用场景从其中选择一种配置即可。
| 特点 | KV 数据库 | D1 数据库 |
|---|---|---|
| 读写性能 | 高 | 较低 |
| 免费额度 | 少 | 多 |
重要提示
KV 数据库和 D1 数据库只需要配置其中一个即可,不需要同时配置两个!建议根据上表选择适合自己的数据库类型。
下面是KV 数据库配置
创建 KV 命名空间
- 首先在 Cloudflare Dashboard 中选择 “存储和数据库”
- 点击 “Workers KV”
- 点击 “创建实例”
- 输入命名空间名称:
img_url(建议使用此名称) - 点击 “创建”
绑定 KV 到项目
- 返回您的 Pages 项目
- 选择 “设置” → “绑定”
- 点击 “添加” → “KV 命名空间”
- 填写绑定信息:
- 变量名称:
img_url(必须是这个名称) - KV 命名空间:选择刚创建的命名空间
- 变量名称:
- 点击 “保存”
注意
绑定 KV 时,变量名称必须为 img_url,这是项目预设的变量名,填错会出现无法进入管理界面等情况。
以上就是KV的开通配置说明,但是我本次教程使用D1数据库,毕竟D1数据库免费额度大点,如果内容多推荐。
数据库配置
创建 D1 数据库
- 首先在 Cloudflare Dashboard 中选择 “存储和数据库”
- 点击 “D1 SQL 数据库”
- 点击 “创建数据库”
- 输入数据库名称:
img_d1(建议使用此名称) - 点击 “创建”


接着执行安装 D1 数据库
- 创建完成后,点击进入数据库详情页
- 选择 “控制台” 选项卡
- 在 SQL 输入框中粘贴并执行注释区域以下的内容(见项目仓库)
- 点击 “执行”
打开项目仓库:https://github.com/MarSeventh/CloudFlare-ImgBed/blob/main/database/init.sql


绑定 D1 到项目
- 现在我们返回 Pages 项目
- 选择 “设置” → “绑定”
- 点击 “添加” → “D1 数据库”
- 填写绑定信息:
- 变量名称:
img_d1(必须是这个名称) - D1 数据库:选择刚创建的数据库
- 变量名称:
- 点击 “保存



如果你有激活cloudflare R2,也是这里添加,不过填写的时候选择R2存储和对应变量名称和存储桶名称。
现在一切准备就绪,去pages重新部署下即可。

三点这里选择重新部署就可以访问了。部署好,你 可以看到cloudflare提供的域名,点这个域名就可以访问你的图床了,当然你也可以绑定自己的域名进行访问。

到这里图床部署成功了,接着对接Hugging Face。
访问你的网盘地址,进入网盘

第一次登录会提示创建索引什么的忽略它就好。


到这里你需要先去登录Hugging Face 创建token
配置 HuggingFace 说明
在管理后台的 HuggingFace 渠道配置中填入:
- 渠道名称:自定义名称
- Token:HuggingFace Access Token(进入这个网址 https://huggingface.co/settings/tokens 获取,具体看下图)
- Repo:仓库名称(格式:username/repo-name,用户名须填写正确,仓库名随意,会自动创建 dataset 类型仓库)
- Is Private:是否为私有仓库
提示
HuggingFace 渠道支持大文件直传,适合上传超过 20MB 的文件。对于大文件,系统会自动使用 LFS 协议进行分片上传。

这里的名称可以随意填写

把这个复制了去图床上接着设置

渠道名称可以随意写,仓库名就是Hugging Face的用户名,/下面的也可以随意填写。然后确认添加就可以了。
这样Hugging Face就对接好了,上传文件就可以了,当然还可以对接更多渠道,图床的更多功能就自己研究下。写个教程花了我好几个小时。对了,图床也可以设置上传密码和后台登录账号密码,自己设置下就好。

小舅子Blog












评论前必须登录!
注册