| tgDrive 是一款使用 Java 开发的基于 Telegram Bot 的网盘应用,支持不限容量和速度的文件存储。通过多线程技术和优化的传输策略,为用户提供高效、可靠的云存储解决方案。目录 
 功能特点
 
 核心优势
 
 
 技术特性🚀 突破限制:完全突破 Telegram Bot API 的 20MB 文件大小限制📈 多线程传输:采用多线程上传下载技术,最大化利用带宽资源🔗 外链支持:支持图片外链功能,可直接在浏览器中访问和预览🖼️ 图床集成:完美支持 PicGo 图床工具,提供便捷的图片托管服务🎯 GIF 优化:解决 Telegram 自动将 GIF 转换为 MP4 的问题🌐 WebDAV 支持:提供 WebDAV 接口,允许第三方程序进行文件管理和操作,增强文件交互的灵活性
 
 
 快速开始⚡ 高性能:基于 Java 17+ 开发,确保稳定性和性能🐳 容器化:提供 Docker 支持,简化部署和维护流程💾 数据持久化:支持数据持久化存储,确保数据安全🔄 API 支持:提供完整的 RESTful API 接口🌐 WebDAV 支持:提供基本的 WebDAV 接口
 
 在线体验
 
 相关资源
 
 部署方式
 
 Docker Compose 部署
 
 
 Tip 📌 注意:如果服务器内存较小(RAM ≤ 512MB),建议使用 nanyangzesi/tgdrive:server-latest 镜像 docker-compose up -d
 
 更新镜像
 
 
 使用数据卷挂载后,每次更新镜像时,只需拉取镜像并重新启动容器即可,数据库数据不会丢失:docker compose pulldocker compose up -d 
 Docker 部署
 
 
 基础部署命令:docker pull nanyangzesi/tgdrive:latestdocker run -d -p 8085:8085 --name tgdrive --restart always nanyangzesi/tgdrive:latest 
 迁移之前的数据
 
 
 Tip 0.0.9版本开始,您可以直接在管理界面进行下载数据库和恢复数据库中的文件数据 
 如果您已经运行过项目,并在容器内生成了数据库文件,可以将这些数据手动迁移到主机的持久化目录中: 找到旧容器的 ID 或名称:docker ps -a 
 
 
 复制容器内的数据库文件到主机:docker cp <容器名或ID>:/app/db ./db 
 自部署
 
 
 前置要求: 部署步骤: 进入下载的二进制包所在目录。运行以下命令:java -jar [最新的二进制包名] 
 
 
 例如:java -jar tgDrive-0.0.2-SNAPSHOT.jar 
 Render 部署
 
 
 Tip Render 免费部署需要银行卡认证。 步骤
 
 使用说明
 
 
 访问你部署项目的网址后,会出现如下页面: 
 
 Tip 0.0.9版本开始,所有页面都需要登入,不同的是,分为管理员账号和游客账号,游客只能进入上传页面,游客账号visitor,密码111111 
 点击管理界面,填写bot token: bot token和chatID不知道如何获取?看这篇文章填完后点击提交配置,下拉,选择你刚刚填写的配置文件加载,就能进行上传了:进阶配置 
 WebDAV 配置
 
 
 Tip 从 v0.0.8 开始支持WebDAV 以 AList 为例
 
 
 
 
 Tip 
 用户名和密码:就是tgdrive的管理员账号和密码,默认为:admin 123456,你可以在tgdrive的管理页面更改密码(推荐) 填写完成后点击添加,回到主页,进入你刚刚填写的挂载的文件夹,开始使用吧!PicGo 配置 
 
 Tip 从 v0.0.4 开始支持 PicGo。 使用前准备
 
 
 确保已安装 PicGo 插件 web-uploader。参数说明 
 
 反向代理API 地址:本地默认 http://localhost:8085/api/upload。服务器部署请修改为 http://<服务器地址>:8085/api/upload。POST 参数名:默认为 file。JSON 路径:默认为 data.downloadLink。
 
 Caddy 配置
 
 example.com {    # 启用 HTTPS(Caddy 会自动获取并管理 SSL 证书)    reverse_proxy / http://localhost:8085 {        # 设置代理头        header_up Host {host}                     # 保持客户端原始请求的 Host        header_up X-Real-IP {remote}              # 客户端的真实 IP        header_up X-Forwarded-For {remote}        # X-Forwarded-For 请求头,标识客户端 IP        header_up X-Forwarded-Proto {scheme}      # 客户端的协议(http 或 https)        header_up X-Forwarded-Port {port}         # 客户端的端口号    }}
 NGINX 配置
 
 server {    listen 443 ssl;    server_name example.com;    location / {        proxy_pass http://localhost:8085;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        proxy_set_header X-Forwarded-Port $server_port;        client_max_body_size 100M ; # 可以设置为你需要上传的文件的最大的大小    }}
 
 |