本文首次发布于 2024 年 6 月,2025 年 1 月进行了更新。
注:截至 2025 年 1 月,原有的 Telegraph API 接口被官方关闭,需要将上传渠道切换至 Telegram Channel,部署时需要设置
TG_Bot_Token
和TG_Chat_ID
,否则影响上传功能。
近期悲痛听闻 imgtp 图床跑路了,而本博客评论系统的图床服务就是由 imgtp 提供的… 看来自建一个图床才是长久之计!
1. 在 GitHub 上 Fork 此项目
转到项目仓库(https://github.com/cf-pages/Telegraph-Image),点击页面右上角的 Fork
,创建新分支到你的仓库。
创建分支完成后,就不用管了,继续下面的步骤。
2. 创建一个 Telegram Bot
项目的原理可理解为:利用 Telegram Bot 的 API 实现图片上传和查看。
2.1 用 BotFather 创建机器人
登录 Telegram,向 @BotFather 发送命令 /newbot
。
根据提示,依次输入您的 机器人名称
和 用户名
。
成功创建机器人后,您将会收到一个 BOT_TOKEN
,用于与 Telegram API 进行交互。
2.2 新建频道,并将机器人设置为管理员
创建一个新的频道(Channel)。
进入该频道后,选择频道设置,将刚刚创建的机器人添加为频道管理员。
2.3 获取频道 ID
频道 ID 无法直接被查看,为此,我们需要利用一个第三方机器人来获取频道 ID。
向机器人 @VersaToolsBot 发送消息,并按提示操作。
你将得到一个 CHAT_ID
,此即频道的ID。
3. 在 Cloudflare 部署 Pages 项目
3.1 创建 Pages 项目
登录到 Cloudflare 控制台,在左侧边栏中选择 Workers 和 Pages
。
接下来选择 连接到 Git
,并在接下来的步骤中选中你刚刚 Fork 的那个仓库。
构建设置部分,我们点击展开 环境变量(高级)
选项。
新建以下两条变量(将示例值改为你刚刚在 第 2 步
获取的数据):
环境变量 | 示例值 | 说明 |
---|---|---|
TG_Bot_Token | 123468:AAxxxGKrn5 | 从 @BotFather 获取的 Telegram Bot Token |
TG_Chat_ID | -1234567 | 频道的 ID,确保 TG Bot 是该频道或群组的管理员 |
3.2 绑定自己的域名
回到项目列表,点击进入这个项目,然后点击 自定义域
选项。
根据提示绑定自己的域名,并配置 CNAME 解析,稍后 Cloudflare 还会自动为你配置 SSL 证书。
这一步骤大约需要 2 分钟生效,耐心等待片刻。
完成
至此,一个无限空间的图床部署完成,尽情使用吧~
本站评论功能已接入自建图床,欢迎体验
进阶使用(后台管理与图片审核)
Telegraph-Image 其实也支持了图片后台管理、以及通过第三方 API 实现的图片 AI 审核功能,需要手动开启。
有关操作步骤,请参阅官方教程:https://github.com/cf-pages/Telegraph-Image
⚠ 需要特别注意
截至 2025 年 1 月,官方教程中 “创建环境变量和 KV 命名空间” 的步骤存在错别字。
例如,
BASIC_USER
这一变量名称,实际上应为BASIC USER
(不包含下划线),否则会导致无法进入图片管理后台。
环境变量
和KV 命名空间
的正确名称可参考下图,这是笔者经验证得出的正确配置:
局限性
1. 图片文件实际上存储于 Telegram 的服务器,其对图片大小的限制为最大 5MB
2. 毕竟使用了 Cloudflare 的网络,图片的加载速度在某些国家和地区可能较慢
3. Cloudflare Function 免费版每日限制 100,000
个请求(即上传、加载图片的总次数不能超过 100,000
次)
与其它图床的对比
如果你的使用目的是托管博客站点上的所有图片(即仅个人使用),则更推荐你尝试 PicX 图床 等项目。
Telegraph-Image 更适合作为一个公共图床。
名称 | Telegraph-Image | PicX |
---|---|---|
无限空间 | ✅ | ✅ |
最大图片大小 | 5 MB | 无限制 |
图片 AI 审核 | ✅ | ❌ |
后台管理 | ✅ | ✅ |
访问速度 | ✅ | ✅ |
适用场景 | 适用公共场景(例如评论区图床),无需登录即可使用,网站界面只有一个上传按钮 | 适用个人博主,需通过 GitHub Token 登录后台,除图床服务外,还提供一些图片处理小工具(图片压缩、图片转 Base64、图片水印等) |
技术原理 | Telegram API | GitHub API |
CDN 加速 | Cloudflare | jsDelivr |