一个基于 Telegram 的无限容量、极速加密、双重备份的私人云存储与合集管理方案。
- 无限存储: 利用 Telegram 频道的特性,实现真正的无上限云存储。
- 端到端加密: 每一个文件在上传前都经过随机生成的 AES-256 密钥加密。即使 Telegram 官方也无法知晓您的文件内容。
- 文件名混淆: 自动生成随机文件名,隐藏原始文件指纹,彻底绕过内容审查。
- 双重备份 (Dual Upload): 文件上传时同步存入“主存储频道”与“备份频道”,确保数据永不丢失。
- 故障自动切换 (Failover): 若主存储读取失败,系统会自动秒级切换到备份群组,提取过程零中断。
- 闲置账号护航: 核心下载与 ID 识别操作由专门的“闲置账号”执行,保护您的主账号隐私与安全。
- 相册模式 (Media Group): 支持解密后的相册级发送,自动将图片/视频聚类,拒绝刷屏。
- 沉浸式菜单 (Floating Menu): 提取合集时,交互菜单自动随消息下移并清理旧消息,保持对话整洁。
- 流式分片清理: 针对 60GB 等小硬盘服务器优化,每发送 10 个文件立即清理本地缓存,防止磁盘爆满。
- 多维度统计: 实时查看总文件数、用户数及系统占用情况。
- 直观用户管理: 内置交互式面板,支持对违规用户进行 1天/3天/永久 封禁。
- 智能搜索: 基于关键字快速锁定已存储的文件或目标对话。
系统由三个身份协同工作,以实现最大安全性:
| 身份 | 对应文件 | 职责 |
|---|---|---|
| 机器人 (Bot) | vault_bot.session |
用户交互入口,处理大部分指令与轻量上传。 |
| 主账号 (User) | vault_user.session |
管理员操作出口,用于执行搜索等高权限动作。 |
| 存储账号 (Storage) | vault_storage.session |
辅助工具,专门负责后台下载、加入群组,保护主号。 |
详细的部署说明请参考:📖 完整部署与迁移指南 (deploy.md)
本项目支持以下部署方式:
- 手动部署: 适用于 Linux VPS (Ubuntu/CentOS),通过 Systemd 保活。
- 宝塔面板 (Baota): 针对 CentOS 环境的傻瓜式 Python 项目镜像部署。
| 路径 / 文件 | 说明 |
|---|---|
bot.py |
程序主入口,负责 Bot 启动与事件调度。 |
config.py |
核心配置文件(包含 API 密钥、数据库路径等)。 |
database.py |
数据库逻辑层,处理所有文件索引及解密密钥。 |
handlers/ |
业务逻辑目录,包含菜单、工具以及会话管理。 |
services/ |
核心服务模块,包含 AES 加密工具、Web 服务及 S3 支持。 |
vault.db |
核心数据库文件,请务必妥善备份。 |
requirements.txt |
项目依赖清单。 |
config_example.py |
配置模板,公开分享前请使用该文件隐藏私密信息。 |
| 指令 | 描述 | 权限 |
|---|---|---|
/start |
启动机器人并呼出主菜单按钮 | 所有用户 |
/mycollections |
查看我创建的所有文件合集 | 所有用户 |
直接发文件 |
触发加密上传流程 | 所有用户 |
发送提取码 |
触发解密提取流程 | 所有用户 |
/users |
进入管理员用户管理面板 | 管理员 |
/download |
进入批量下载/对话提取工具箱 | 管理员 |
/stats |
查看系统运行统计 | 管理员 |
- 自负盈亏: 本工具仅供交流学习使用,请勿用于违反 Telegram 条款或当地法律的用途。
- 数据备份: 请务必定期备份
vault.db,该文件丢失将导致所有加密文件无法找回。 - 封号风险: 尽管采用了双账号与指纹混淆,大规模频繁操作仍有封号风险,建议使用非主力账号作为存储号。
- 底部菜单显示: 如果无法显示底部菜单,请暂时使用
/start命令重新调用。目前该 Bug 正在排查中。 - 内存占用: 提取超大视频文件时(>2GB),如果不安装
tgcrypto,解密过程可能会非常缓慢且占用 CPU。
本项目遵循 MIT License。