└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # tglibrary 2 | 3 | **tglibrary** 是一个使用Flask编写的基于 Telegram Bot API 的媒体文件存储解决方案,让您能够轻松上传、管理和分享图片和视频文件,并突破 Telegram 的 20MB 文件大小限制。 4 | # 主页: 5 | ![image](https://github.com/user-attachments/assets/d527beb5-bfee-48b4-8b4b-8dcf033658b1) 6 | 7 | # 后台: 8 | ![image](https://github.com/user-attachments/assets/9d599023-e32b-43d6-b450-91e5b09ba62f) 9 | 10 | # 系统设置: 11 | ![image](https://github.com/user-attachments/assets/c3b65b91-5623-40d1-8779-cff74b65c6bd) 12 | 13 | 14 | ## 当前所有版本包括打包版均不保证稳定性,建议使用docker版本,如有问题及时提交lssuse,我会及时修复!!! 15 | 16 | 前端部分借鉴[SkyDependence](https://github.com/SkyDependence/)大佬的前端,大佬的[tgDrive](https://github.com/SkyDependence/tgDrive)也是不错的项目,大家可以自行前往查看 17 | 18 | ## 特性 19 | 20 | * 🖼️ 支持图片上传和存储 21 | * 🎬 支持视频上传和存储 22 | * 📊 突破 Telegram 20MB 文件大小限制 23 | * 🔗 生成可直接访问的文件链接 24 | * 📂 文件管理功能 25 | * 🔒 安全的私人存储空间 26 | * 💻 简单易用的命令接口 27 | * 🔺 自由开关和设置水印 28 | * 🤖 发送给机器人文件自动生成访问链接 29 | 30 | ## 工作原理 31 | 32 | tglibrary 利用 Telegram Bot API 作为后端存储系统,通过以下方式实现功能: 33 | 34 | 1. **文件分片上传** - 对于超过 20MB 的视频文件,tglibrary 会自动将其分割成多个TS进行上传,播放时调用m3u8进行播放 35 | 2. **元数据管理** - 为每个文件维护详细的元数据记录,便于快速检索 36 | 3. **直接链接生成** - 为所有上传的媒体文件生成直接可访问的链接 37 | 38 | ## 安装 39 | 40 | 下载存储库中的 tglibrary 二进制文件 41 | 42 | ## 配置 43 | 44 | 在使用 tglibrary 前,您需要创建一个 Telegram Bot 并获取 API Token。 45 | 46 | 1. 在 Telegram 中与 @BotFather 聊天创建新的 Bot 47 | 2. 获取 API Token 48 | 3. 在 Telegram 中与 @get_myidbot 聊天获取你的 CHAT_ID 49 | 4. 程序自动创建默认配置,请进入管理后台自行更改相关配置 50 | 51 | 默认密码为:admin 52 | ## 使用方法 53 | 54 | ### Docker部署(推荐) 55 | ```bash 56 | docker pull sulong/tglibrary:latest 57 | docker run -d -p 5000:5000 --name tglibrary sulong/tglibrary:latest 58 | ``` 59 | Docker部署不是很熟悉,如果你遇到问题有相关的解决方案,欢迎及时lssuse,谢谢! 60 | ### 命令行使用 61 | 由于本次打包未包含jpeg-dev和ffmpeg依赖,请自行安装或使用Dokcer版本!! 62 | 63 | ```bash 64 | # 安装依赖 65 | apt install libjpeg-turbo-dev ffmpeg 66 | # 运行tglibrary 67 | ./tglibrary 68 | ``` 69 | 70 | ### 作为系统服务运行 71 | 72 | 您可以将 tglibrary 设置为系统服务,使其在后台持续运行。以下是使用 systemd 配置的方法: 73 | 74 | 1. 创建服务文件: 75 | 76 | ```bash 77 | sudo nano /etc/systemd/system/tglibrary.service 78 | ``` 79 | 80 | 2. 添加以下内容: 81 | 82 | ```ini 83 | [Unit] 84 | Description=Telegram Library Media Storage 85 | After=network.target 86 | 87 | [Service] 88 | Type=simple 89 | User=YOUR_USERNAME 90 | WorkingDirectory=/path/to/tglibrary 91 | ExecStart=/path/to/tglibrary 92 | Restart=always 93 | RestartSec=5 94 | StandardOutput=syslog 95 | StandardError=syslog 96 | SyslogIdentifier=tglibrary 97 | 98 | [Install] 99 | WantedBy=multi-user.target 100 | ``` 101 | 102 | 3. 启用并启动服务: 103 | 104 | ```bash 105 | sudo systemctl daemon-reload 106 | sudo systemctl enable tglibrary 107 | sudo systemctl start tglibrary 108 | ``` 109 | 110 | 4. 检查服务状态: 111 | 112 | ```bash 113 | sudo systemctl status tglibrary 114 | ``` 115 | 116 | ### 常用服务管理命令 117 | 118 | ```bash 119 | # 启动服务 120 | sudo systemctl start tglibrary 121 | 122 | # 停止服务 123 | sudo systemctl stop tglibrary 124 | 125 | # 重启服务 126 | sudo systemctl restart tglibrary 127 | 128 | # 查看日志 129 | sudo journalctl -u tglibrary -f 130 | ``` 131 | 132 | ## 注意事项 133 | 134 | - 确保 tglibrary 具有执行权限:`chmod +x /path/to/tglibrary` 135 | - 首次运行请根据你获取的 `API Token` 和 `CHAT_ID` 进入后台自行配置相关信息 136 | - 系统服务运行时将使用配置文件中指定的存储路径 137 | 138 | ## 反代设置 139 | Nginx 140 | ```bash 141 | server { 142 | listen 80; 143 | server_name your-domain.com; 144 | 145 | # 设置最大上传文件大小为100MB 146 | client_max_body_size 100M; 147 | 148 | location / { 149 | proxy_pass http://localhost:5000; 150 | proxy_set_header Host $host; 151 | proxy_set_header X-Real-IP $remote_addr; 152 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 153 | proxy_set_header X-Forwarded-Proto $scheme; 154 | } 155 | } 156 | ``` 157 | 158 | ## 支持与反馈 159 | 如果您觉得本项目对您有帮助,欢迎: 160 | 161 | * ⭐ 给项目点个 Star 162 | * 🔄 分享给更多的朋友 163 | * 🐛 提交 Issue 164 | * 您的支持是项目持续发展的动力! 165 | --------------------------------------------------------------------------------