在独立博客和网站运营中,图床(图片托管) 永远是一个让人头疼的问题。大厂的存储服务(如七牛云、腾讯云 COS、阿里云 OSS)虽然稳定,但流量费和存储费长期累积下来也是一笔开销,甚至还有被恶意盗刷流量的风险。

今天给大家分享一个真正的“零成本、无限量”的终极图床解决方案——Telegraph-Image。它基于 Cloudflare Pages 部署,并利用 Telegram 作为后端存储。不仅完全免费、无限容量、不限流量,而且还自带功能强大的后台管理与图片审查功能!

⚠️ 重要背景提醒:过去该项目使用 Telegraph 官方接口,但由于原接口已被官方关闭,现在的最新版本已经全面切到了 Telegram Channel(频道) 渠道。我们需要配置自己的 Telegram Bot 来实现图片上传,稳定性和隐私性反而更高了。下面就带大家手把手完成搭建!

一、 为什么选择 Telegraph-Image?

  1. 零服务器成本:完全托管在 Cloudflare 边缘网络上,无需购买任何服务器。

  2. 无限存储容量:图片实际存储在 Telegram 频道中,只要 Telegram 不倒闭,就能无限上传。

  3. 免费二级域名 & 自定义域名:默认提供 Cloudflare 免费的 *.pages.dev 域名,当然也支持绑定你自己的独立域名。

  4. 强大的后台管理:支持网格、瀑布流预览,可对上传的图片进行批量复制、黑白名单控制。

  5. 智能图片审查:可对接第三方 API,自动屏蔽不良图片,防止违法违规内容撑爆你的站点。

  6. 全自动同步更新:支持 GitHub Actions,上游代码更新后,你的图床也能自动同步最新功能。

二、 准备工作:获取 Telegram 必要凭证

在部署前,我们需要获取 Telegram 的两个核心参数:TG_Bot_Token(机器人令牌)和 TG_Chat_ID(频道 ID)。

1. 申请 Telegram Bot Token

  1. 在 Telegram 中搜索并关注官方机器人 @BotFather

  2. 向它发送指令 /newbot

  3. 按照提示,先输入机器人的显示名称,再输入机器人的用户名(必须以 bot 结尾,例如 my_image_hub_bot)。

  4. 创建成功后,BotFather 会发给你一串长字符串,这就是你的 TG_Bot_Token,请妥善保存。

2. 创建并配置 Telegram 频道

  1. 在 Telegram 中新建一个频道(Channel),设置为公开或私有均可。

  2. 进入频道设置 -> 管理员列表(Administrators),将刚刚创建的机器人添加为频道管理员,并赋予发消息的权限。

3. 获取频道的 Chat_ID

  1. 在 Telegram 中搜索并关注机器人 @VersaToolsBot@GetTheirIDBot

  2. 将你刚刚创建的频道中的任意一条消息转发给这个机器人。

  3. 机器人会返回一串带有负号的数字(例如 -100xxxxxxxxx),这就是该频道的 TG_Chat_ID

三、 手把手部署教程:只需简单三步

第一步:Fork 项目仓库

首先,登录你的 GitHub 账号,访问 Telegraph-Image 官方仓库,点击右上角的 Fork 按钮,将项目复制一份到你自己的账号下。

第二步:开启 GitHub 自动更新(可选但强烈推荐)

由于 GitHub 的限制,Fork 出来的项目默认不会自动运行工作流。

  1. 进入你 Fork 后的仓库,点击顶部的 Actions 标签。

  2. 页面会提示需要启用,点击绿色按钮 "I understand my workflows, go ahead and enable them"

  3. 在左侧菜单找到 Upstream Sync,确保其处于开启状态。这样以后原作者更新了代码,你的仓库每小时会自动同步,无需手动搬运。

第三步:在 Cloudflare Pages 中部署

  1. 登录 Cloudflare Dashboard

  2. 在左侧菜单栏选择 Workers 和 Pages -> 点击 创建应用程序 -> 选择 Pages 标签页。

  3. 点击 连接到 Git 提供程序,选择你的 GitHub 账号,并选中刚才 Fork 的 Telegraph-Image 仓库,点击 开始设置

  4. 关键步骤(配置环境变量):在展开的“环境变量(高级)”中,添加以下两个变量:

    变量名称

    示例值

    说明

    TG_Bot_Token

    123456:AAxxx...

    刚才从 @BotFather 获取的 Token

    TG_Chat_ID

    -100123456789

    刚才获取的带有负号的频道 ID

  5. 点击 保存并部署。稍等一两分钟,Cloudflare 就会为你生成一个 *.pages.dev 的专属图床网址。大功告成!

四、 进阶高级配置(让图床更完美)

如果你希望将它作为一个长期稳定的生产力工具,建议开启以下进阶功能:

1. 绑定自定义域名

Cloudflare 默认的分配域名在国内部分地区访问可能不够顺畅。

  • 操作方法:在 Cloudflare Pages 的管理后台,切换到 自定义域 标签页,点击 绑定自定义域,输入你自己的域名。如果域名本身就在 Cloudflare 托管,它会自动帮你写好 DNS 解析,非常方便。

2. 开启图片管理后台(带登录验证)

默认情况下,图床是没有后台管理页面的。如果想对上传的图片进行预览、删除、拉黑,可以这样配置:

  1. 绑定 KV 数据库

    • 在 Cloudflare Pages 页面中,点击 设置 -> 函数 -> 找到 KV 命名空间绑定

    • 点击 编辑绑定,添加一个绑定:

      • 变量名称 填写:img_url

      • KV 命名空间 选择或新建一个你提前准备好的 KV 存储空间。

  2. 开启密码保护

    • 再次前往 设置 -> 环境变量,添加以下两个生产环境下的变量:

      变量名称

      示例值

      说明

      BASIC_USER

      admin

      你的自定义后台登录用户名

      BASIC_PASS

      my_secure_password

      你的自定义后台登录密码

  3. 重新部署:修改完上述内容后,去 部署 页面手动重新部署一次。

  4. 访问后台:此后,访问 https://你的域名/admin 即可看到精美的图片管理后台。

3. 智能图片审查

防止有人利用你的图床上传违规内容,可以接入免费的审查服务。

  1. 前往 ModerateContent 注册一个免费账户,获取 API key。

  2. 在 Cloudflare Pages 的环境变量中添加:ModerateContentApiKey = 你的API key

  3. 如果想更严格,还可以添加变量 WhiteList_Mode = true,开启白名单模式。此模式下,上传的图片必须由你在后台手动审核通过(加入白名单)才能正常展示。

五、 方案的额度与局限性(避坑指南)

虽然这个方案非常完美,但天下没有完全无限制的午餐。在使用前,你需要了解 Cloudflare 免费版的一些软性限制:

  1. 单个文件大小限制:由于底层使用的是 Telegram Bot API,单张图片的大小一般受 Telegram 官方限制(通常不超过 50MB),不过作为网页图床这完全足够了。

  2. Cloudflare Functions 请求额度:免费版每日限制 100,000 次请求(即每天上传+加载图片总次数不超过10万次)。

  3. KV 数据库额度(若开启后台管理)

    • 每日免费写入额度 1,000 次(每有一张新图片加载会占用一次写入记录)。

    • 每日免费读取额度 100,000 次。

    • 每日免费列出/删除额度 1,000 次。

💡 站长小贴士:对于个人博客和中小型网站来说,这个免费额度完全是溢出的。如果你开启了 Cloudflare 的边缘缓存(Cache),大部分图片在第二次加载时直接走缓存,并不会消耗请求额度。如果有一天你的博客流量爆炸,也可以无缝升级到 Cloudflare $5/月的付费版,彻底解除限制。

六、 结语

使用 Cloudflare Pages + Telegram 搭建图床,不仅将白嫖艺术发挥到了极致,更重要的是它依托于大厂基础设施,稳定性和速度在免费图床中都是属于第一梯队的。

赶紧去搭建一个你自己的专属图床吧!如果在部署过程中遇到任何问题,欢迎在评论区留言交流。

本文项目开源地址:cf-pages/Telegraph-Image