一款以Telegram作为储存的文件📃外链系统.可作为telegram图床,亦可作为telegram网盘使用.
支持通过Web前端上传文件或通过Telegram向机器人发送文件进行上传.
本fork版: 已修复原作者分包下载异常报错,报错原因: Request Entity Too Large
及其他部分优化和改进.
不限制文件大小和格式.
实际上,(为了能够分包下载,因为官方限制:下载文件大小不能超过20MB)超过20MB文件会在前端进行分割上传(过大的单文件需确保内存够用),后端也会对超过20MB文件打断上传,且受限于请求链路中各个环节对POST请求体大小的限制,另外记录分割数量的文件大小也不能超过20MB(即单文件不能超过约5.3T),故实际可上传大小请结合实际情况.
必填参数
- target
- token
可选参数
- pass
- mode
- url
- port
目标可为频道、群组、个人
当目标为频道时,需要将Bot拉入频道作为管理员,公开频道并自定义频道Link,target值填写Link,如@xxxx
当目标为群组时,需要将Bot拉入群组,公开群组并自定义群组Link,target值填写Link,如@xxxx
当目标为个人时,则为telegram id(@getmyid_bot获取)
填写你的bot token
填写访问密码,如不需要,直接填写none
即可
p
代表网盘模式运行,不限制上传后缀m
在p模式的基础上关闭网页上传,可私聊进行上传(如果target是个人,则只支持指定用户进行私聊上传
bot获取FileID的前置域名地址自动补充
自定义运行端口
对bot聊天中的文件引用并回复get
可以获取FileID,搭建地址+获取的path即可访问资源
如果配置了url参数,会直接返回完整的地址
确保已经安装go
curl https://codeload.github.com/LanYunDev/tgState/zip/refs/heads/main -
-output main.zip
unzip main.zip
cd tgState-main
go build -ldflags "-w -s"
# Debug模式: go build -gcflags "all=-N -l"
Linux amd64下载
wget https://github.com/LanYunDev/tgState/releases/latest/download/tgstate.zip && unzip tgstate.zip && rm tgstate.zip
使用方法
./tgstate 参数
例子
./tgstate -token xxxx -target @xxxx
后台运行
nohup ./tgstate 参数 &
参考源项目
之后用命令 docker cp <本地二进制路径> <容器ID或容器名称>:/app/tgState
替换二进制文件.
POST方法路径: /api
表单传输,字段名为file
,内容为二进制数据
文件下载路径: /api/download/