基于 Cloudflare Pages + Telegram 搭建无限免费图床教程
Cloudflare 提供了强大的边缘计算与静态托管服务。利用 Cloudflare Pages 配合 Telegram 的图片存储能力,我们可以轻松搭建一个完全免费、无限容量、支持现代化后台管理的个人图床。
项目核心优势
- 无限存储: 依托外部存储机制,图片上传数量与容量不设上限。
- 零成本托管: 部署于 Cloudflare 全球网络,在免费额度内完全免费,无需购买传统服务器。
- 免备案域名: 默认提供
*.pages.dev免费二级域名,同时支持无缝绑定自定义独立域名。 - 智能内容审查: 支持集成第三方鉴黄 API,自动识别并屏蔽不良图片。
- 完善的后台管理: 自带管理面板,支持图片在线预览、日志审计、访问统计(IP/Referer)以及黑白名单配置。
部署准备工作
在开始部署前,请确保您已准备好以下账户:
- GitHub 账号
- Cloudflare 账号
- Telegram 账号(用于获取机器人 Token 及频道 ID)
核心部署步骤
1. 导入项目源码
首先,访问开源项目地址,点击 Use this template 按钮,将图床项目的模板源码克隆至您自己的 GitHub 代码库中。
💡 官方开源项目参考: cf-pages/Telegraph-Image 或 x-dr/telegraph-Image
2. 在 Cloudflare 中创建 Pages 项目
- 登录到 Cloudflare 控制台。
- 在帐户主页导航栏中,依次选择 Workers 和 Pages > 创建应用程序 > Pages > 连接到 Git。
- 选择您在上一步中克隆的 GitHub 存储库。
- 在构建设置(Set up builds and deployments)中,将 框架预设(Framework preset) 选择为
Next.js。 - 点击 保存并部署(Save and Deploy)。
3. 配置 D1 数据库(用于后台管理)
为了启用图片管理与日志功能,需要绑定 Cloudflare D1 数据库:
- 在 Cloudflare 控制台左侧菜单选择 D1 数据库,点击 创建数据库。
- 数据库名称可自定义(例如输入
test),点击创建。 - 进入刚创建的数据库,找到 控制台/SQL 查询 输入框,复制并执行以下建表语句:
1 | DROP TABLE IF EXISTS tgimglog; |
4. 开启 Node.js 兼容性标志
- 在 Pages 项目的后台管理界面中,依次点击 设置 -> 函数 -> 兼容性标志。
- 点击 配置生产兼容性标志,在输入框中填写:
nodejs_compat。 - 调整完成后,前往 部署 页面,找到最新的一次构建记录,点击 重试部署 以应用配置。
环境变量配置指南
若要使图床正常工作并启用高级功能,请在 Pages 项目的 设置 -> 环境变量 中添加以下参数:
| 变量名称 | 类型 | 说明与示例 |
|---|---|---|
TG_BOT_TOKEN | String | Telegram 机器人 Token(可通过 Telegram 搜索 @BotFather 申请获取) |
TG_CHAT_ID | String | 目标频道 ID 或公开频道用户名(如 @channelusername)。用于存储图片的频道需将上述 Bot 设为管理员。可使用 @VersaToolsBot 获取私有 ID。 |
BASIC_USER | String | 后台管理页面的登录用户名 |
BASIC_PASS | String | 后台管理页面的登录密码 |
PROXYALLIMG | Boolean | 是否反向代理所有图片(默认为 false) |
ENABLE_AUTH_API | Boolean | 是否开启访客上传验证(默认为 false) |
REGULAR_USER | String | 开启访客验证时的普通用户名 |
REGULAR_PASS | String | 开启访客验证时的普通用户密码 |
CUSTOM_DOMAIN | String | 自定义加速域名,例如 https://your-custom-domain.com |
ModerateContentApiKey | String | 图像内容审查的 API Key |
RATINGAPI | String | 自建的鉴黄 API 地址 |
完成上述所有配置并重新部署后,您便拥有了一个专属且完全免费的无限容量图床系统。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 马斯克的赛博空间!
评论


