Pentaract:利用 Telegram API 实现无限云存储的技术分析

一、项目概述

1. 核心理念

Pentaract 是一个开源工具,巧妙地将用户现有的 Telegram 账户转化为无限云存储后端。它不将文件上传到公开频道,而是发送到用户的私人聊天(如「已保存消息」),利用 Telegram 庞大的云基础设施构建个人无限存储系统。

2. 项目背景

A. 痛点分析

  • 云存储费用高昂
  • 免费层存储空间有限
  • 多服务间文件转移繁琐

B. 解决方案

复用已有的 Telegram 应用,利用其本质上无限的媒体和文档存储能力。

3. 技术定位

  • 项目类型:本地客户端工具
  • 开发语言:Python
  • 存储后端:Telegram API
  • 安全特性:端到端加密

二、系统架构

1. 核心组件

graph TD
    A[用户文件] --> B[Pentaract 客户端]
    B --> C[本地加密模块]
    C --> D[文件分块处理]
    D --> E[Telegram API]
    E --> F[私人聊天/已保存消息]
    F --> G[Telegram 云存储]
    H[用户] -->|请求下载| B
    B -->|通过 API 获取| F
    B -->|重组解密| A

Pentaract 系统架构

2. 组件说明

A. Pentaract 客户端

  • 运行在用户本地机器
  • 监控指定文件夹的变更
  • 自动同步文件到 Telegram 云

B. 本地加密模块

  • 使用用户控制的密钥进行本地加密
  • Telegram 只能看到加密后的数据块
  • 端到端加密保护隐私

C. 文件分块处理

  • 自动处理 Telegram 文件大小限制
  • 大文件自动分割
  • 下载时透明重组

D. Telegram API

  • 使用标准 Telegram Bot API 或 MTProto
  • 认证通过 api_id 和 api_hash
  • 与私人聊天交互

三、工作流程

1. 上传流程

sequenceDiagram
    participant U as 用户
    participant C as Pentaract 客户端
    participant E as 加密模块
    participant S as 分块处理
    participant T as Telegram API

    U->>C: 选择文件
    C->>E: 本地加密
    E-->>C: 加密数据
    C->>S: 文件分块
    S->>T: 上传数据块
    T-->>S: 确认上传
    S-->>C: 上传完成
    C-->>U: 同步成功

上传流程时序图

2. 下载流程

sequenceDiagram
    participant U as 用户
    participant C as Pentaract 客户端
    participant T as Telegram API
    participant S as 重组模块
    participant E as 解密模块

    U->>C: 请求文件
    C->>T: 获取数据块
    T-->>C: 返回加密块
    C->>S: 重组文件
    S->>E: 解密数据
    E-->>C: 原始文件
    C-->>U: 返回文件

下载流程时序图

四、技术特性

1. 核心优势

A. 端到端加密(E2EE)

  • 使用用户控制的密钥本地加密
  • Telegram 仅看到加密数据块
  • 无法访问原始文件内容

B. 无需新账户

  • 直接使用现有 Telegram 账户
  • 无需注册新服务
  • 利用已有的 API 访问权限

C. 自动分块处理

  • 透明处理 Telegram 文件大小限制
  • 自动分割大文件
  • 下载时自动重组

D. 自托管开源

  • 客户端自行运行
  • 不信任第三方中介
  • 开源代码可审计

2. 适用场景

  • 归档存储
  • 文件备份
  • 跨机器同步非敏感文件
  • 免费无限存储需求

3. 局限性

  • 不适合高频协作场景
  • 速度不及专业云存储
  • 依赖 Telegram 服务可用性

五、部署与配置

1. 环境准备

A. 获取 API 凭证

  1. 访问 my.telegram.org
  2. 创建 Telegram 应用
  3. 获取 api_id 和 api_hash

B. 安装依赖

# 克隆仓库
git clone https://github.com/Dominux/Pentaract.git
cd Pentaract

# 安装 Python 依赖
pip install -r requirements.txt

2. 配置步骤

A. 配置文件设置

# config.yaml 示例
telegram:
  api_id: "your_api_id"
  api_hash: "your_api_hash"
  phone: "+1234567890"

storage:
  sync_folder: "/path/to/sync"
  chat_id: "saved_messages"  # 或私人聊天 ID

encryption:
  enabled: true
  key_file: "/path/to/key"

B. 运行客户端

# 启动同步服务
python pentaract.py --config config.yaml

# 首次运行需要认证
# 输入 Telegram 验证码

六、技术实现要点

1. 文件分块算法

graph LR
    A[原始文件] --> B{文件大小}
    B -->|小于限制| C[直接上传]
    B -->|超过限制| D[计算分块数量]
    D --> E[按 2GB 切分]
    E --> F[添加元数据]
    F --> G[顺序上传]
    C --> H[记录文件映射]
    G --> H

文件分块算法

2. 加密策略

A. 加密流程

  1. 生成或读取用户密钥
  2. 使用 AES-256-GCM 加密文件
  3. 每个分块独立加密
  4. 存储加密元数据

B. 密钥管理

  • 密钥存储在本地
  • 支持密钥文件导入导出
  • 建议使用密码保护密钥文件

3. 元数据管理

graph TD
    A[文件系统] --> B[扫描变更]
    B --> C[构建文件索引]
    C --> D[生成哈希值]
    D --> E[与远程对比]
    E -->|新增| F[标记上传]
    E -->|已存在| G[跳过]
    E -->|已删除| H[标记清理]

元数据管理流程

七、安全考虑

1. 数据隐私

  • 端到端加密确保隐私
  • 本地密钥控制
  • Telegram 无法解密内容

2. 凭证安全

  • api_id 和 api_hash 本地存储
  • 不要分享凭证文件
  • 定期轮换密钥

3. 最佳实践

  • 敏感文件使用强密钥
  • 定期备份密钥文件
  • 测试恢复流程

八、性能优化

1. 并发上传

  • 多线程上传分块
  • 限制并发数避免 API 限流
  • 断点续传支持

2. 增量同步

  • 仅同步变更文件
  • 哈希对比减少重复上传
  • 时间戳快速判断

3. 缓存策略

  • 本地缓存文件列表
  • 减少 API 调用次数
  • 智能刷新机制

九、项目评价

1. 创新点

A. 资源复用

  • 巧妙利用现有基础设施
  • 降低存储成本
  • 零额外费用

B. 隐私优先

  • 本地加密设计
  • 用户完全控制
  • 开源可审计

2. 适用人群

  • 开发者研究 Telegram API
  • 需要免费无限备份的用户
  • 注重隐私的个人用户

3. 学习价值

  • Telegram API 实战应用
  • 本地加密实现方案
  • 文件同步系统设计

十、总结

Pentaract 是一个极具创意的项目,展示了如何通过巧妙的设计将常见平台转化为新的实用工具。它不适合替代 Dropbox 或 Google Drive 进行日常高速协作,但作为免费、无限、加密的备份目标或项目归档方案,是一个精彩且实用的解决方案。

该项目体现了创造性工程的核心精神:审视常见平台,发现新颖用途。对于开发者而言,这是一个值得研究的项目,其实用的 Telegram API 应用、本地加密和文件管理方案都具有很高的学习价值。


参考资料

  1. Pentaract GitHub 仓库
  2. Telegram API 文档
  3. my.telegram.org 应用创建
  4. Open-source Projects 项目页
最后修改:2026 年 01 月 17 日
如果觉得我的文章对你有用,请随意赞赏