刷到一个离谱的项目
前两天在 linux.do 逛,看到有人说「用 Telegram 当存储后端,对外暴露 S3 和 WebDAV」——第一反应:概念项目吧。
点进去一看,Go 写的,Docker 一键部署,4 天 46 个 commit,刚发 v0.1.0。关键是它真的能跑。我也搭了一个,下面手把手教你怎么搞。
它干了什么
简单说:起一个 HTTP 服务,把 S3 和 WebDAV 请求翻译成 Telegram Bot API 调用。文件存在 Telegram 聊天消息里,本地一个 SQLite 记录映射关系。对外同时暴露 S3 和 WebDAV 两个协议。
怎么搭建
第一步:准备 Telegram
找 @BotFather 创建 Bot → 拿到 Token → 建个群组 → 把 Bot 拉进去给管理员 → 记下群组 Chat ID。
第二步:部署
在你的服务器上:
mkdir -p tgnas/data && cd tgnas
wget -P data https://github.com/aahl/tgnas/raw/refs/heads/dev/data/config.yaml
cat > .env << EOF
TGNAS_SECRET_KEY=你设个密码
TGNAS_TELEGRAM_BOT_TOKEN=Bot的Token
TGNAS_TELEGRAM_CHAT_ID=-群组ID
EOF
docker compose up -d
镜像在 ghcr.io/aahl/tgnas,不用自己编译。docker-compose.yml 去项目仓库复制,就十几行。
启动后 9000 端口同时跑 S3 和 WebDAV。用哪个协议取决于你的场景。
怎么用
S3 方式(适合服务器间传文件、rclone 同步):
aws --endpoint-url http://你的IP:9000 s3 ls s3://tgnas/
Access Key 是 admin,Secret Key 就是你设的密码。任何兼容 S3 的工具都能用——rclone、MinIO Client、Duplicati 备份。
WebDAV 方式(适合电脑挂载):
Windows 装个 RaiDrive(免费),添加 WebDAV,填 http://你的IP:9000/dav/ 就行。macOS 访达直接 cmd+K 连接。挂上之后跟本地文件夹一样用。
浏览器看文件:
挂上之后跟本地文件夹一样用,文件管理器里直接拖拽。
搭建后的效果
macOS 访达挂载后,tgNAS 目录就跟本地文件夹一样,拖拽文件直接存进 Telegram。
靠不靠谱
4 天的项目,稳定性还得观察。但方向确实好——Telegram 免费存(单文件上限 2GB),套上标准协议就能接入整个 S3 和 WebDAV 生态,玩法很多。别存重要文件,当玩具或临时中转站完全够用。
项目地址:https://github.com/aahl/tgnas