首页
cloudflare技术

在 Cloudflare 上零成本搭建全能私有图床与文件托管服务

建立一个全能私有图床与文件托管服务,利用Cloudflare的免费额度零成本。

洛宸

洛宸

在 Cloudflare 上零成本搭建全能私有图床与文件托管服务

CloudFlare ImgBed:在 Cloudflare 上零成本搭建全能私有图床与文件托管服务

项目介绍

在博客写作、社交媒体分享或日常工作中,我们经常需要上传图片或文件并获取可分享的链接。但传统的图床服务要么收费,要么有存储和流量限制,数据安全和隐私也无法完全掌控。而 CloudFlare ImgBed 的出现完美解决了这一问题——它是一个运行在 Cloudflare 上的开源文件托管解决方案,让你可以在零服务器成本的情况下,拥有一个功能完整、界面优雅的私有图床和文件托管系统。[reference:0][reference:1]

项目地址:https://github.com/luochen-zhang/CloudFlare-ImgBed

开源协议:MIT

核心优势

  • 费用:0 元(利用 Cloudflare 免费额度)
  • 性能:极速(部署在 Cloudflare 全球边缘节点)
  • 灵活:支持 Telegram、Discord、Cloudflare R2、S3、Hugging Face、WebDAV 等多种存储后端[reference:2]
  • 数据私有:所有文件和数据都存储在自己的存储渠道中
  • 运维成本:零——无需管理服务器

核心功能

CloudFlare ImgBed 不是简单的文件上传器,而是一个全链路文件生命周期管理工具[reference:4],功能覆盖了日常使用的方方面面:

功能 说明
多格式文件托管 支持图片、视频、动图等绝大多数常见格式
多种上传方式 支持拖拽点击、粘贴上传(支持文件和 URL),批量上传
后台管理 完整的文件管理界面,支持目录组织、批量操作[reference:7]
登录鉴权 支持身份认证,保护你的文件不被公开访问
图片审查 自动进行内容审核和成人元素鉴定[reference:10]
多样化链接复制 支持 MarkDown、HTML、BBCode 和原始链接四种格式
随机图 API 支持随机图片接口,适合用于博客配图等场景[reference:13]
多存储渠道 支持 Telegram、Discord、R2、S3、Hugging Face、WebDAV 等[reference:14]
RESTful API 提供完整的 RESTful API,方便集成到其他系统[reference:15]
WebDAV 支持 支持 WebDAV 协议,可作为网络硬盘使用[reference:16]
自动压缩 过大图片在前端自动压缩,提升上传稳定性和加载性能
响应式设计 基于 Vue.js 构建,自动适配 PC 和移动端[reference:18]

技术栈

CloudFlare ImgBed 采用了现代化的全栈技术方案:

  • 平台:Cloudflare Pages / Workers
  • 前端框架:Vue.js(响应式设计)[reference:19]
  • 后端架构:Cloudflare Workers 无服务器架构[reference:20]
  • 存储层:支持 Telegram、Discord、R2、S3 等多种存储后端[reference:21]
  • 元数据存储:Cloudflare KV[reference:22]

部署教程

准备工作

开始部署前,你需要准备:

  1. 一个 Cloudflare 账号
  2. 一个 GitHub 账号
  3. Telegram Bot Token 和 Chat ID(推荐,作为默认存储渠道)
  4. (可选)Cloudflare R2 存储桶(如使用 R2 作为存储后端)

方式一:Cloudflare Pages 可视化部署(推荐)

这是最简单的部署方式,全程在浏览器中完成。

第 1 步:Fork 仓库

登录 GitHub,打开 CloudFlare ImgBed 项目仓库,点击右上角的 Fork 按钮,将仓库复制到你的 GitHub 账号下。

第 2 步:进入 Cloudflare Workers & Pages

登录 Cloudflare 控制台,进入 Workers & Pages 创建页面:

https://dash.cloudflare.com/?to=/:account/workers-and-pages/create

第 3 步:连接 GitHub 并选择仓库

点击 连接到 Git,按提示授权 Cloudflare 访问你的 GitHub 账号,然后选择你刚刚 Fork 的 CloudFlare-ImgBed 仓库。

第 4 步:配置构建设置

⚠️ 注意:从 v2.7.1 版本开始,前端构建输出目录已变更为 frontend-dist

  • 框架预设:选择 Nuxt.jsVue.js(根据项目实际配置)
  • 构建命令npm install
  • 输出目录/frontend-dist

💡 如使用旧版本,输出目录可能为 /,请根据实际情况调整。

第 5 步:配置环境变量与绑定

CloudFlare ImgBed 需要配置以下内容:

环境变量(推荐在管理后台配置)

💡 新版本所有设置项已迁移至 管理端 → 系统设置 界面,原则上无需再通过环境变量设置。

但以下 Telegram 相关变量建议保留,以保证兼容性:

变量名 说明 是否必需
TG_BOT_TOKEN Telegram Bot Token (默认存储渠道)
TG_CHAT_ID Telegram Channel ID (默认存储渠道)

KV 数据库绑定(必须配置):

⚠️ KV 数据库为必须配置,如果未配置将无法正常使用。

  1. 在 Cloudflare 控制台创建 KV 命名空间
  2. 在 Pages 项目的 设置 → 绑定 中添加 KV 绑定

第 6 步:保存并部署

完成所有配置后,点击 保存并部署,等待部署流程完成。

第 7 步:访问使用

部署成功后,访问你的 Pages 域名,使用默认密码 cfbed 登录即可开始使用[reference:32]。

💡 官方演示站:https://cfbed.1314883.xyz/(访问密码:cfbed)[reference:34]

方式二:CLI 部署(适合开发者)

如果你习惯使用命令行,也可以通过 Wrangler CLI 部署:

# 克隆仓库
git clone https://github.com/luochen-zhang/CloudFlare-ImgBed.git
cd CloudFlare-ImgBed

# 安装依赖
npm install

# 登录 Cloudflare
npx wrangler login

# 部署
npm run deploy