
tgNetDisc:把 Telegram 变成轻量图床和网盘
这是什么?
tgNetDisc 是一个基于 Telegram Bot API 的开源图床/网盘项目。
它的思路很直接:文件上传到 Telegram,Web 页面负责上传、展示和生成外链。对用户来说,它像一个轻量网盘;对博客作者来说,它也可以当图床。

它解决什么问题?
很多人需要一个轻量文件外链服务,但传统方案总绕不开几个问题:对象存储要配置权限,图床服务可能限流,网盘分享链接又不够直观。
tgNetDisc 换了个角度:既然 Telegram 本身能长期保存文件,就让 Bot 把文件发到频道或聊天,再把文件 ID 转成可访问链接。
这不是企业级对象存储,但对个人博客、临时文件分发、小规模图床来说,足够聪明。
核心功能
| 功能 | 说明 |
|---|---|
| 文件上传 | 通过网页或 API 上传文件 |
| 外链生成 | 上传成功后返回可访问 URL |
| 图片预览 | 图片链接可直接浏览器打开 |
| 密码访问 | 支持通过密码保护上传页面 |
| 大文件分片 | 超过限制后切片上传并生成清单 |
| Docker 部署 | 官方提供容器部署方式 |
项目基于 csznet/tgState 修改而来,主语言是 Go,README 中也说明了支持多种 CPU 架构。
Docker 部署
推荐直接用 Docker:
docker run -d --restart=always \
--name netdisc \
-p 8088:8088 \
-e TOKEN=你的机器人Token \
-e CHANNEL=你的频道或ChatID \
-e MODE=pan \
-e PASS=访问密码 \
-e DOMAIN=https://你的域名.com \
yohannfan/yohann-netdisc:latest
关键变量如下:
| 变量 | 作用 |
|---|---|
TOKEN | Telegram Bot Token |
CHANNEL | 文件发送到的频道或 Chat ID |
PASS | 上传页面访问密码,可选 |
DOMAIN | 生成完整外链用的域名,可选 |
MODE | pan 表示网盘模式 |
如果使用频道作为存储位置,需要把 Bot 拉进频道并设置为管理员。频道公开时可以使用 @channelName,也可以用 Chat ID。
API 上传
tgNetDisc 的 API 很简单,一个 multipart/form-data 请求即可:
curl -X POST \
-F "image=@/path/to/file.png" \
-b "p=你的密码" \
https://你的域名.com/api
返回示例:
{
"code": 1,
"message": "/d/BQACAgUAAyEGAASMO11u...",
"url": "https://你的域名.com/d/BQACAgUAAyEGAASMO11u..."
}
url 就是最终外链。图片可以直接预览,普通文件则可以直接下载。
Python 调用
import httpx
endpoint = "https://你的域名.com/api"
cookies = {"p": "你的密码"}
files = {"image": ("demo.png", open("demo.png", "rb"), "image/png")}
resp = httpx.post(endpoint, files=files, cookies=cookies)
print(resp.json()["url"])
这个接口适合接入博客自动化、截图上传、临时附件分发等流程。
大文件分片
Telegram 单次文件上传存在大小限制,tgNetDisc 会对大文件做分片处理。它会先上传多个分片,再上传一个记录分片信息的清单文件。访问最终链接时再根据清单组合读取。
这个设计很实用,但也要接受一个现实:大文件上传不会很快。它适合能等的文件分发,不适合追求高速的大体积网盘体验。
适合什么场景?
| 场景 | 是否适合 |
|---|---|
| 博客图床 | 很适合,外链直接可用 |
| 临时文件分发 | 适合,小文件体验好 |
| 自动化上传 | 适合,API 简洁 |
| 私人超大网盘 | 勉强,不建议当主力 |
| 企业文件服务 | 不适合,依赖 Telegram |
优缺点
优点很明显:部署简单、容量弹性大、API 直接、几乎不占本地磁盘。对于个人用户来说,这些都很香。
限制也要说清楚:它依赖 Telegram 服务和网络环境;大文件分片慢;文件管理能力比较弱;如果你的服务器无法稳定访问 Telegram,体验会直接打折。
总结
tgNetDisc 的价值在于“轻”。它不打算替代专业对象存储,也不适合做严肃网盘系统,但非常适合作为个人图床、临时文件分发站,或者自动化流程里的文件出口。
如果你已经有一台能访问 Telegram 的 VPS,又想要一个成本很低的外链服务,tgNetDisc 值得试。
项目地址:Yohann0617/tgNetDisc 原项目:csznet/tgState