P115-Share 是一个基于 Python 和 Vue 3 开发的 115 网盘自动化转存与分享管理系统。它能够自动监听 Telegram 消息中的 115 分享链接,将其保存至指定目录,并自动生成长期有效的二次分享链接进行广播。
- 自动转存:多平台链接支持(115.com, 115cdn.com, anxia.com),自动提取并保存至网盘。
- 消息转发:支持保留原始消息中的文字描述、图片和标签,并自动替换其中的链接。
- 长期链接生成:自动将转存后的文件创建为“永久有效”的分享链接。
- 频道同步:一键将处理结果发布到指定的 Telegram 频道。
- 实时仪表盘:直观查看 Bot 连接状态与 115 登录状态。
- 实时日志:通过 WebSocket 实现的高性能日志查看器,支持历史回溯,随时掌握系统动向。
- 快捷清理:支持一键清空保存目录及清空 115 回收站。
- 定时清理:支持通过 Cron 表达式自定义保存目录与回收站的自动清理周期。
- 任务互斥锁:内置高效的并发控制(Mutex),确保转存分享与清理任务安全互斥,避免冲突。
- 异常容错:自动识别并处理 115 常见的业务错误(如文件已删除、重复接收等)。
直接从 Docker Hub 拉取镜像运行:
docker run -d \
-p 8000:8000 \
-e TZ=Asia/Shanghai \
-v $(pwd)/data:/app/data \
--restart unless-stopped \
listeningltg/p115-share:latest说明:
data目录用于持久化数据库文件(包括用户头像 base64 数据)
创建 docker-compose.yml 文件:
version: '3.8'
services:
p115-share:
image: listeningltg/p115-share:latest
container_name: p115-share
ports:
- "8000:8000"
volumes:
- ./data:/app/data
environment:
- TZ=Asia/Shanghai
restart: unless-stopped然后启动服务:
docker compose up -d如果您想从源码构建:
git clone https://github.com/ListeningLTG/P115-Share.git
cd P115-Share
docker compose up -d --build- 访问管理界面:
http://localhost:8000 - 进入 [系统配置] 页面,填写以下核心信息:
- 115 Cookie:您的 115 账号登录凭证。
- TG Bot Token:从 @BotFather 获取。
- TG 用户 ID:您的 Telegram ID(点击“测试机器人”获取)。
- 白名单配置:允许触发机器人的聊天 ID(用英文逗号分隔)。
- TG 频道 ID:用于广播分享的频道 ID(注意:Bot 必须被设为该频道的管理员才能发送消息)。
- 代理配置(可选):如需代理访问,可在"代理配置"面板中填写。
- 点击"保存配置"后,系统将持续运行。
如果您希望在本地进行开发或手动运行,请参考以下步骤。
后端使用 FastAPI 框架。
-
环境准备:
-
Python 3.11+
-
建议创建虚拟环境:
cd backend python -m venv venv # Windows .\venv\Scripts\activate # Linux/macOS source venv/bin/activate
-
-
安装依赖:
pip install -r requirements.txt # 安装核心组件 pip install p115client -
运行服务:
# 在 backend 目录下运行 python -m app.main默认 API 端口为 8000。
前端使用 Vue 3 + Vite + Ant Design Vue。
-
环境准备:
- Node.js 20+
- npm 或 pnpm
-
安装依赖:
cd frontend npm install -
本地开发运行:
npm run dev
前端开发服务器默认运行在
http://localhost:5173。Vite 已配置代理,会自动将/api请求转发到localhost:8000。 -
构建生产环境代码:
npm run build
构建产物将存放在
dist目录。在 Docker 部署中,这些文件会被复制到后端的static目录。
- 本地开发:同时启动后端 (
python -m app.main) 和前端 (npm run dev)。访问http://localhost:5173即可进行开发。 - 静态部署:前端构建后的
dist文件夹内容放置在backend/static下,访问后端端口即可直接查看完整应用。
| 配置项 | 说明 | 默认值 |
|---|---|---|
P115_SAVE_DIR |
转存文件存放的网盘路径 | /分享保存 |
P115_CLEANUP_DIR_CRON |
清理保存目录的周期 | */30 * * * * |
P115_CLEANUP_TRASH_CRON |
清理回收站的周期 | 0 */2 * * * |
P115_RECYCLE_PASSWORD |
115 回收站安全密码 | 空 |
项目已内置 GitHub Actions 自动化工作流。您可以轻松地将镜像发布到 Docker Hub:
- 获取 Token:在 Docker Hub 的
Account Settings -> Security中创建一个Access Token。 - 配置 Secrets:在 GitHub 仓库的
Settings -> Secrets and variables -> Actions中添加:DOCKERHUB_USERNAME: 您的 Docker Hub 用户名。DOCKERHUB_TOKEN: 刚才生成的 Access Token。
- 触发构建:每当您向
main分支提交代码或推送形如v*的 Tag 时,GitHub 会自动构建并推送镜像到您的用户名/p115-share。
├── backend/ # FastAPI 后端服务
├── frontend/ # Vue 3 前端源码
├── Helper/ # p115client 核心组件
├── Dockerfile # 多阶段构建文件
└── docker-compose.yml # 容器编排文件
本程序仅供技术研究和学习,禁止用于任何非法用途。开发者不对使用本程序造成的任何数据损失或账号问题负责。请遵守相关法律法规及网盘平台使用协议。
欢迎提交 Issue 或 Pull Request!
Created by Listening © 2026