{"id":28906847,"url":"https://github.com/yohann0617/tg-disk","last_synced_at":"2026-01-20T13:06:53.720Z","repository":{"id":300382317,"uuid":"1006006781","full_name":"Yohann0617/tg-disk","owner":"Yohann0617","description":"基于Telegram的♾️️无限容量网盘/图床，不限制文件格式，不限制文件大小（大文件会分块上传），不限制文件内容😏，占用很少的内存和磁盘空间📁，轻巧方便。 文件都存储在Telegram☁️端，拥有良好的安全性🔒和持久性。 单个文件大小不能超过20MB，上传成功会生成HTML、Markdown、BBCode三种形式的外链🔗，可以用来当做图床、文件下载url。","archived":false,"fork":false,"pushed_at":"2025-07-01T08:12:37.000Z","size":2020,"stargazers_count":22,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-01T09:25:36.076Z","etag":null,"topics":["golang","image-hosting","network-disk","telegram-bot-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yohann0617.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-21T09:25:41.000Z","updated_at":"2025-07-01T08:12:40.000Z","dependencies_parsed_at":"2025-06-21T11:35:17.122Z","dependency_job_id":null,"html_url":"https://github.com/Yohann0617/tg-disk","commit_stats":null,"previous_names":["yohann0617/tg-disk"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Yohann0617/tg-disk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yohann0617%2Ftg-disk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yohann0617%2Ftg-disk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yohann0617%2Ftg-disk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yohann0617%2Ftg-disk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yohann0617","download_url":"https://codeload.github.com/Yohann0617/tg-disk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yohann0617%2Ftg-disk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264040939,"owners_count":23548071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","image-hosting","network-disk","telegram-bot-api"],"created_at":"2025-06-21T15:10:16.505Z","updated_at":"2026-01-20T13:06:53.714Z","avatar_url":"https://github.com/Yohann0617.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tg-disk\n\n\u003e 🤖利用Telegram接口，♾️️无限容量，不限制文件格式，不限制文件大小（大文件会分块上传），不限制文件内容😏，占用很少的内存和磁盘空间📁（可执行文件不到6MB，docker镜像不到20MB），轻巧方便。 文件都存储在Telegram☁️端，拥有良好的安全性🔒和持久性。 上传成功会生成HTML、Markdown、BBCode三种形式的外链🔗，可以用来当做图床、文件下载url。文件下载时会使用多线程的方式，提升下载速度。\n\n## 💻如何部署\n\n### Docker部署\n\n#### 1. 创建目录以及配置文件\n\n```bash\nmkdir -p /app/tg-disk \u0026\u0026 cd /app/tg-disk\n```\n\n```bash\n# 自行修改后运行\ncat \u003e .env \u003c\u003cEOF\nPORT=8080\nBOT_TOKEN=7430196666:AAHgQ_XXX\nCHAT_ID=6194666666\nACCESS_PWD=yohann\nPROXY=\nBASE_URL=\n\n# Thread configuration (optional)\n# Download threads for concurrent chunk download (default: 8)\nDOWNLOAD_THREADS=8\n# Frontend chunk size in MB (max: 20, due to Telegram limits)\nCHUNK_SIZE_MB=10\n# Frontend chunk upload concurrency (default: 4)\nCHUNK_CONCURRENT=4\n# Frontend file upload concurrency (default: 2)\nFILES_CONCURRENT=2\nEOF\n```\n\n**配置说明：**\n\n| 配置项                | 说明                                     | 默认值    | 建议值 / 是否必填                   |\n| ------------------ | -------------------------------------- |--------| ---------------------------- |\n| `PORT`             | Web 服务监听端口                             | `8080` | 可选（如端口冲突可修改）                 |\n| `BOT_TOKEN`        | Telegram 机器人 Token                     | 无      | **必填**                       |\n| `CHAT_ID`          | Telegram 个人 / 群组 ID（用于存储文件）            | 无      | **必填**                       |\n| `ACCESS_PWD`       | 前端 Web 页面访问密码                          | 无      | **必填（强烈建议）**                 |\n| `PROXY`            | Telegram 访问代理（仅支持 HTTP）                | 空      | 可选，如 `http://127.0.0.1:7890` |\n| `BASE_URL`         | TG 机器人回复 `get` 或 `/get` 时生成的文件访问基础 URL | 空      | 可选，如 `https://example.com`   |\n| `DOWNLOAD_THREADS` | **后端** Telegram 分片下载并发线程数              | `8`    | `4 ~ 8`                      |\n| `CHUNK_SIZE_MB`    | **前端** 上传分片大小（MB，受 TG 限制）              | `10`   | `5 ~ 20`                     |\n| `CHUNK_CONCURRENT` | **前端** 分片上传并发数                         | `4`    | `3 ~ 6`                      |\n| `FILES_CONCURRENT` | **前端** 同时上传的文件数量                       | `2`    | `1 ~ 5`                      |\n\n\u003e 分片大小建议设置为5MB，否则内存占用太高。如需下载超大文件，需取消设置响应超时或直接不配置HTTPS/CDN。\n\n#### 2. docker-compose 一键部署\n\n下载 [docker-compose.yaml](https://github.com/Yohann0617/tg-disk/blob/master/docker-compose.yaml) 文件到`/app/tg-disk`，如需配置**HTTPS**，建议修改为以下内容，防止其他人直接通过IP+端口直接访问：\n\n```yaml\nservices:\n  tg-disk:\n    image: ghcr.io/yohann0617/tg-disk:master\n    container_name: tg-disk\n    restart: always\n    ports:\n      - \"127.0.0.1:8080:8080\" # 修改项，端口可以自行修改\n    volumes:\n      - .env:/app/.env\n```\n\n一键启动：\n\n```bash\ncd /app/tg-disk \u0026\u0026 docker-compose up -d\n```\n\n## 👶如何使用\n\n部署成功后，直接`http://IP:端口`即可访问，支持同时上传多个文件，**文件大小无限制**，大文件会分块上传，最后生成一个`fileAll.txt`文件。私聊机器人指定某个文件（如果是分块文件，指定`fileAll.txt`该文件）回复`get`或者`/get`，即可获取完整的URL链接，且分块文件下载时能够自动获取到文件名及后缀，无需修改下载文件名称。\n\n\n## 🌏Nginx反向代理\n\n核心配置：\n\n```nginx\n        location / {\n            proxy_pass http://127.0.0.1:8080;\n            proxy_set_header Host $host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_set_header X-Forwarded-Proto $scheme;\n            \n            # 大文件下载优化\n            proxy_buffering off;                    # 禁用缓冲，允许流式传输\n            proxy_request_buffering off;            # 禁用请求缓冲\n            proxy_read_timeout 1800s;               # 读取超时30分钟（可适当调整）\n            proxy_connect_timeout 300s;             # 连接超时5分钟\n            proxy_send_timeout 1800s;               # 发送超时30分钟\n        }\n```\n\n## 🔑文件上传 API 示例\n\n```bash\n# url、文件路径自行修改\ncurl -X POST http://127.0.0.1:8080/upload -F \"pwd=yohann\" -F \"file=@C:\\Users\\Yohann\\Desktop\\TikTok 21.1.0.ipa\"\n```\n\n## 🔍页面展示\n\n![image.png](./img/1.png)\n\n![image.png](./img/2.png)\n\n![image.png](./img/3.png)\n\n![image.png](./img/4.png)\n\n![image.png](./img/5.png)\n\n![image.png](./img/6.png)\n\n## ⭐Stargazers over time\n\n[![Stargazers over time](https://starchart.cc/Yohann0617/tg-disk.svg?variant=adaptive)](https://starchart.cc/Yohann0617/oci-helper)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyohann0617%2Ftg-disk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyohann0617%2Ftg-disk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyohann0617%2Ftg-disk/lists"}