banner
约 1,800 字
6 分钟

Cloudflare pages 搭建免费图床! 享受 Telegram 的无限空间

摘要

Cloudflare Pages + Telegraph 的免费图床方案,作为 Flickr/imgur 替代品,利用 Telegram Channel 的无限空间存储图片(原 Telegraph API 已关闭,需改用 TG Bot Token + Chat ID)。文章讲解获取 Bot Token 与频道 ID、Fork 仓库并在 Cloudflare Pages 部署、配置环境变量,支持图片审查 API 与后台管理。限制:单图最大 5MB、Cloudflare 每日 10 万请求。

前言

做个人网站、写博客,最头疼的往往是图片往哪放。要么用商业图床怕跑路,要么用免费图床担心哪天接口就关了。今天分享一个很稳的思路:用 Cloudflare Pages + Telegraph 自建一个完全免费、图片数量不设限的图床,托管的底层是 Telegram 的存储 —— 等于把"无限图床"这件事交给 Telegram 来扛。

这套方案脱胎于开源的 Telegraph-Image 项目。原本它依赖的 Telegraph API 接口已经被官方关闭了,所以现在需要把上传渠道切换成 Telegram Channel(频道)。部署时按文档设置好 TG_Bot_TokenTG_Chat_ID 两个环境变量,上传功能就能正常使用。下面从零开始讲清楚。

先做准备工作

你唯一需要提前准备的,是一个 Cloudflare 账户(免费注册即可)。另外还要有一个 Telegram 账户,以及按下面的方法拿到机器人的 Token 和频道 ID。

一、获取 Telegram 的 Bot Token 和 Chat ID

如果还没有 Telegram 账户,先创建一个。然后按以下步骤操作:

1. 获取 Bot_Token

在 Telegram 里搜索并打开 @BotFather,发送命令 /newbot,根据提示依次输入机器人的名称用户名。创建成功后,BotFather 会返回一串 BOT_TOKEN,这就是之后用来和 Telegram API 交互的凭证。

blog image

2. 把机器人设为频道管理员

创建一个新的 Channel(频道),进入频道设置 → 管理员,把刚创建的机器人添加为频道管理员。这样机器人才能往频道里发消息(也就是替你存图)。

blog image

blog image

3. 获取 Chat_ID

频道 ID 可以用机器人获取。向 @VersaToolsBot@GetTheirIDBot 发消息,按提示操作即可拿到频道的 ID(通常是一串带负号的数字,如 -1234567)。

blog image

4. 在 Cloudflare Pages 配置环境变量

到 Cloudflare Pages 后台,给项目添加下面两个环境变量(注意:修改环境变量后,需要重新部署一次才会生效):

环境变量

示例值

说明

TG_Bot_Token

123456789:AAxxxGKrn5...

从 @BotFather 获取的 Telegram Bot Token

TG_Chat_ID

-1234567

频道 ID,确保 TG Bot 是该频道/群组的管理员

二、部署到 Cloudflare Pages

简单 3 步就能完成部署:

  1. 下载或 Fork 项目仓库(注意:目前请使用 Fork 方式)——项目来自 cf-pages/Telegraph-Image

  2. 打开 Cloudflare Dashboard → 进入 Pages 管理页面 → 创建项目

    • 如果第 1 步选择了 Fork 本仓库,这里就选 "连接到 Git 提供程序",授权并选到你的仓库;

    • 如果第 1 步是下载本仓库,就选 "直接上传",把文件拖进去。

    部署入口

    blog image
  3. 按页面提示填写项目名称,选择要连接的 Git 仓库(Fork 方式)或上传刚下载的仓库文件(直接上传方式),点击 "部署站点" 即可。部署完成后,在后台把第 4 步的两个环境变量补上,再重新部署一次让它们生效。

三、特性一览

部署好后,这个自建图床拥有这些优点:

  1. 图片数量不设限:可以上传不限数量的图片,因为底层存储用的是 Telegram。

  2. 完全免费:不用买服务器,托管在 Cloudflare 网络上,只要用量在免费额度内就免费。

  3. 自带免费域名:可用 Cloudflare Pages 提供的 *.pages.dev 免费二级域名,也支持绑定自定义域名。

  4. 可选图片审查:需要时开启审查 API,不良图片会自动屏蔽、不再加载。

  5. 后台图片管理:支持在线预览,还能给图片加白名单、黑名单,管理更灵活。

四、绑定自定义域名

想用自己的域名,在 Pages 的 自定义域 设置里,绑定一个托管在 Cloudflare 的域名即可 —— 因为域名在 Cloudflare 托管,它会自动帮你改好 DNS 记录,基本是傻瓜式操作。

自定义域名

blog image

五、限制要心里有数

虽然是免费方案,但也有一些边界要提前知道:

  1. 单张图片上限 5MB:因为图片实际存到 Telegraph,而 Telegraph 限制单张上传最大 5MB。

  2. 部分地区加载速度一般:走的是 Cloudflare 网络,个别地区的访问速度不一定理想。

  3. 每日 10 万请求限额:Cloudflare Functions 免费版每日约 10 万次请求(上传或加载图片合计)。对个人博客来说,正常使用绰绰有余。

小结

如果你已经在用 Telegram,又想要一个不用操心维护、图片数量不设限的图床,这套 "Cloudflare Pages + Telegraph" 方案很值得一试。部署只花几分钟,之后就能把博客的图片稳定托管起来,再也不用担心图床哪天突然关停。唯一的门槛就是需要能访问 Telegram 环境,这点要先确认自己具备。

END