
5 分钟搭建永久免费的双渠道私人 AI 图床
基于 Cloudflare 全家桶 + Telegram 频道搭建的**永久免费**私人 AI 图床。
2026年05月27日 星期三
1556 字 · 7 分钟
基于 Cloudflare 全家桶 + Telegram 频道搭建的永久免费私人 AI 图床。支持 R2 和 Telegram 双渠道存储,AI 自动打标签,WebP 自动转换,支持分类管理、语义检索。全屏快速预览、一键下载、批量管理,让图片管理变得高效便捷。
✅ 完全免费 | ✅ 永不限速 | ✅ 一键部署 | ✅ 源码开源
前期准备
- Cloudflare 账号(免费)
- Telegram 账号和频道
- GitHub 账号(可选)
🚀部署步骤
1、 Fork 项目【点击前往↗】
2、创建 R2 存储桶


3、创建 D1 数据库,并执行SQL创建表头



进入该数据库,点击 控制台 ,复制下方的SQL代码并执行,创建表结构:
CREATE TABLE IF NOT EXISTS images (
id INTEGER PRIMARY KEY AUTOINCREMENT,
image_url TEXT NOT NULL,
ai_tags TEXT NOT NULL,
category TEXT NOT NULL,
source TEXT DEFAULT 'R2',
upload_time TEXT,
file_id TEXT,
short_id TEXT
);
CREATE INDEX IF NOT EXISTS idx_images_category ON images(category);
CREATE INDEX IF NOT EXISTS idx_images_source ON images(source);
CREATE INDEX IF NOT EXISTS idx_images_upload_time ON images(upload_time DESC);
CREATE INDEX IF NOT EXISTS idx_images_short_id ON images(short_id);
CREATE INDEX IF NOT EXISTS idx_images_file_id ON images(file_id);


4、部署 r2-worker,并分别绑定R2、D1、Workers AI、2个自定义域名
(1)、创建 r2-worker 应用程序


(2)、R2 Worker 绑定配置项
| 变量名称 | 类型 | 说明 |
|---|---|---|
MY_BUCKET | R2 存储桶 | 你的 R2 桶 |
MY_DB | D1 数据库 | 你的 D1 数据库 |
AI | AI 绑定 | Workers AI |


(3)、再给 r2-worker 绑定两个自定义域名,
例如:
api.aitc.ccwu.cc用作 R2 Worker 的 API 调用,(对应前端配置中的 R2_API_URL)r2.aitc.ccwu.cc用作 R2 存储桶中图片的访问链接


(4)、自定义域名绑定好之后,给 r2-worker 配置环境变量
| 变量名称 | 值 |
|---|---|
R2_PUBLIC_URL | https://r2.aitc.ccwu.cc |


(5)、进入 GitHub 项目,打开 workers/r2-worker.js 文件,复制全部代码,然后粘贴到 Cloudflare r2-worker 的代码编辑器中,点击保存并部署。


(6)、部署好 r2-worker 后需执行 /?setup=agree 接口,完成 AI 模型协议签署。
在浏览器中打开 API 域名并访问 /?setup=agree 路径(例如 https://api.aitc.ccwu.cc/?setup=agree),按回车键执行。此步骤用于同意 Workers AI 模型的使用许可协议,确保 AI 打标功能正常工作,页面上显示 Setup successful 代表设置成功。

5、 部署 tg-worker ,并分别绑定D1、Workers AI、1个自定义域名
(1)、创建 tg-worker 应用程序


(2)、TG Worker 绑定配置项
| 变量名称 | 类型 | 说明 |
|---|---|---|
MY_DB | D1 数据库 | 你的 D1 数据库 |
AI | AI 绑定 | Workers AI |


(3)、再给 tg-worker 绑定一个自定义域名,
例如:
tg.aitc.ccwu.cc用作 TG Worker 的 API 调用(对应前端配置中的 TG_API_URL)


(4)、创建 Telegram Bot 并获取 Bot_Token 和 CHAT_ID

如需获取 `Bot_Token` 和 `CHAT_ID`,展开可查看完整流程。
- 获取Bot_Token:在Telegram中,向@BotFather发送命令/newbot,根据提示依次输入您的机器人名称和用户名。成功创建机器人后,您将会收到一个BOT_TOKEN,用于与Telegram API进行交互。


- 获取 Chat ID:创建一个新的频道(Channel),进入该频道后,点击频道头像,将刚刚创建的机器人添加为频道管理员,然后往频道随便发一条内容,再将这条内容转发给这样 @VersaToolsBot ,然后去到@VersaToolsBot 聊天界面,它就会发给你一条消息,这样你就能得到CHAT_ID。







(5)、获取到 Bot_Token 和 CHAT_ID 之后,给 tg-worker 配置环境变量,例如:
| 变量名称 | 值 |
|---|---|
TG_BOT_TOKEN | 8600352354:AAGeOXM6lpKZHpDeymQfMICTsG-r73M96Bk |
TG_CHAT_ID | -1009946576573 |

(6)、进入 GitHub 项目,打开 workers/tg-worker.js 文件,复制全部代码,然后粘贴到 Cloudflare tg-worker 的代码编辑器中,点击保存并部署。


6、 部署 Pages(前端页面)
(1)、在 GitHub 项目中定位到 index.html 文件,点击进入后,使用编辑按钮(铅笔图标)进行相应的修改。
| 名称 | 示例值 | 说明 |
|---|---|---|
R2_API_URL | https://api.aitc.ccwu.cc | r2-worker 绑定的自定义域名 |
TG_API_URL | https://tg.aitc.ccwu.cc | tg-worker 绑定的自定义域名 |
ADMIN_USER | admin | 管理员登录账号 |
ADMIN_PASS_HASH | 5d539ed951309b3166f9005b4d10d316aaca2bf62ad5da5cc9bbee197894931b | 把哈希值改成你想要的密码对应的哈希值,之后用这个密码登录即可 |
- 先确定你想要使用的登录密码,比如我想用的密码是: Laozhao9862
- 计算出该密码对应的哈希值,那么 Laozhao9862 对应的哈希值就是:5d539ed951309b3166f9005b4d10d316aaca2bf62ad5da5cc9bbee197894931b
- 将原文件中的哈希值替换成这个新哈希值。
- 此后,用你设定的密码即可登录。
如何用浏览器得到某个密码的哈希值,展开查看具体步骤
- 打开浏览器,按 F12 打开开发者工具
- 切换到 Console(控制台)标签
- 粘贴以下代码,按回车:
const msg = "Laozhao9862"; // 比如我想设置的密码是Laozhao9862
const buf = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(msg));
const hash = Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join('');
console.log("密码:", msg);
console.log("SHA256:", hash);
})();


(2)、将修改后的 index.html 文件下载到本地,然后存放到任意一个文件夹中(文件夹名称可随意设定,例如 abc 或 tuchuang)。


(3)、创建Pages应用程序






(4)、绑定自定义域名




7、打开 Pages 绑定的那个自定义域名,进入页面后使用账号和密码登录即可。



✨ 核心功能
| 功能模块 | 具体特性 |
|---|---|
| 📦 双渠道存储 | R2 对象存储 + Telegram 频道,数据双重保障 |
| 🤖 AI 自动打标 | 集成 Workers AI,上传即自动生成中文标签,支持语义检索 |
| 🖼️ WebP 转换 | 前端 Canvas 自动转换,减少 60%-80% 存储空间 |
| 🖱️ 全屏快速预览 | 点击图片全屏查看,左右键/滚轮切换图片,支持下载、移动、复制、删除 |
| 📁 图片管理 | 单张/批量删除、移动、复制到分类 |
| ⬇️ 一键下载 | 图库卡片和全屏预览中均可一键下载图片 |
| 🏷️ 分类管理 | 自定义分类,动态显示/隐藏空分类 |
| 🔍 语义检索 | 基于 AI 标签的图片搜索,秒级找到目标图片 |
| 🎨 渠道标识 | 图库卡片和全屏预览显示 R2/TG 渠道标签 |
| 📄 格式标识 | 自动识别并显示图片格式(JPEG/PNG/WEBP等) |
| ⚡ 多种上传 | 拖拽、点击选择、Ctrl+V 粘贴,任你选择 |
| 💾 渠道记忆 | localStorage 记住上次选择的渠道 |
| 📜 分页加载 | 滚动自动加载更多,每页 100 张 |
Thanks for reading!
留言评论