TangWo 网盘 开源发布:一个纯 PHP 的轻量网盘 / 图床底座

作者 / Author:TangWo · 协议:MIT · 仅 PHP 版(不含原生 PC / Android / Flutter 三端)

TangWo 网盘 · 轻量网盘 / 图床底座
TangWo 网盘 · 纯 PHP 轻量网盘 / 图床底座

把以往散落的网盘项目(wangpanphp、TangWo图床、Cloudreve 规划)收敛之后,我做了一个统一底座:存储、上传内核、路由、鉴权、UI 全部共用一套。网盘与图床长在同一套内核上,从此不再”每次新写一个项目”。

这次正式开源,代码已统一署名为 TangWo,目录也按功能重新分组,开箱即用。


它是什么

TangWo 网盘 是一个 纯 PHP 8.3 + MySQL 的轻量网盘 / 图床底座,零框架依赖,贴合 LNMP / 宝塔 / 1Panel 环境。前端是原生 PHP 服务端渲染 + 少量 JS,没有构建步骤,上传代码到 web 根目录即可运行。

  • 仓库地址(GitHub):https://github.com/6vmt62wk22-ui/tangwo-disk
  • 协议:MIT(可商用、可二次开发,保留署名即可)

核心特性

  • 干净短链下载:/s/xxxx 形式,不带 .php 后缀;分享链接简洁专业。
  • 瞬时上传(秒传):前端 SparkMD5 分片算哈希 → 命中即跳过上传,复用已有物理文件。
  • 引用计数删除:秒传共享的文件,单用户删除不会误删他人文件。
  • 受保护 / 限时分享:分享密码(bcrypt)+ 过期时间,下载端强制拦截。
  • 配额进度条:控制台实时显示已用 / 总量(GB / TB 自动格式化),上传 / 删除自动维护用量。
  • 文件夹系统:支持目录层级(parent_id)。
  • SVG 图形验证码:登录 / 注册防刷,无需 GD 扩展;点击可刷新。
  • 统一登录 / 注册入口:全部收敛到 dashboard.php 访客态,旧 login.php / register.php 仅做重定向,消除无验证码的旧入口。
  • 管理后台:概览 / 用户 / 文件(含回收恢复)/ 系统四标签页,支持搜索 + 过滤 + 配额管理。
  • 套餐升级(内嵌):dashboard.php?view=upgrade 内嵌升级页,未登录可浏览,购买需登录。
  • 首次部署自动引导:index.php 检测版本,未安装自动跳转 /install。
  • 营销首页:Hero + 浮动特性卡 + CTA,Font Awesome 全本地化。
  • 4 引擎存储抽象:本机 / 腾讯云 COS / 阿里云 OSS / AWS S3,切换只改一行配置。
  • 干净短链路由:/dashboard /dashboardadmin /pre_upload /upload /delete 等,无 index.php?page= 参数。
  • 多子域集群就绪:auth / app / io / dl 四节点按角色分工,无状态 HMAC 票据跨域认证。
  • 游客上传开关、自定义下载域名、单文件上限(后台设置)。

架构要点

tangwo-disk/
├── index.php / dashboard.php / login.php / register.php / logout.php / settings.php
├── install.php / migrate.php      安装器 + 幂等迁移内核
├── config.php / functions.php     站点配置 + 公共函数(DB / 短码 / url / 验证码)
├── admin/        管理后台
├── api/          接口端点(upload / pre_upload / download / delete / captcha / pay_*)
├── pages/        法律 / 静态页
├── partials/     页面片段
├── core/         内核类库(Storage / Auth / Captcha / Mail / Sms / Payment / Verify)
├── config/       存储引擎配置(driver + 各引擎参数)
├── deploy/       Nginx 重写片段 + 多子域集群示例
├── docs/         部署说明
└── assets/       样式 + 脚本 + Font Awesome(本地化)
  • 存储抽象:core/Storage/Manager.php 统一接口,业务代码(上传 / 下载 / 删除)零改动切换引擎。
  • 干净短链:functions.php 的 url() / shareUrl() 生成无后缀链接,由 Nginx rewrite(或 Apache .htaccess)映射到子目录文件,与脚本位置无关。
  • 集群票据:core/Auth/Ticket.php 无状态 HMAC 票据,节点间无需共享 session。

快速开始

  1. 准备:PHP-8.3 + MySQL,建站根目录指到本项目。
  2. 改配置:config.php 填 DB 账号密码、SITE_URL、TICKET_SECRET;config/storage.php 选 driver。
  3. 访问首页 → 未安装会自动跳转 /install(建库建表 + 迁移到最新)→ 部署稳定后删除 install.php。
  4. 配置重写:宝塔看 docs/部署说明-宝塔.txt,Nginx 看 deploy/nginx-rewrite.conf。
  5. 注册第一个账号(自动成为管理员)→ 上传。

旧库升级:运行 php migrate.php,迁移内核幂等(列 / 索引已存在自动跳过)。


为什么开源

  • 统一底座:不再重复造轮子,网盘 / 图床共用一套内核。
  • 轻量可审计:纯 PHP、零框架,代码量小,适合学习与安全审计。
  • 4 引擎存储:本机 / COS / OSS / S3 一键切换,私有部署友好。
  • MIT 协议:可自由自用、二次开发、商用,只需保留署名。

欢迎 Star / Fork / 提 Issue。如果你也在做私有云存储,欢迎一起完善这套底座。


可加功能(Roadmap)

这套底座刻意保持“内核小、边界清”,方便按需长功能。以下方向欢迎社区认领、提 Issue 或直接 PR:

  • 多用户与分组权限:用户组、角色、按组配额与上传策略。
  • 文件版本与回收站:误删可恢复、历史版本回溯。
  • 分享增强:提取码、访问密码、下载次数 / 有效期限制、批量分享。
  • 离线下载 / 远程上传:URL 拉取、种子 / 磁力预留接口。
  • WebDAV / 挂载为本地磁盘:无缝融入现有工作流。
  • 图片处理:缩略图、水印、裁剪、格式转换(图床场景刚需)。
  • 对象存储多驱动:已支持 COS,可扩展 S3 / OSS / 七牛 / MinIO。
  • 全文搜索与标签:文件名 + 内容检索、自定义标签。
  • 文档在线预览:Markdown / Office / PDF 直接看。
  • 第三方登录:OAuth2 / 微信 / GitHub。
  • 操作日志与审计:异常登录告警、行为留痕。
  • 桌面 / 移动客户端同步:原生 PC、Android、Flutter 三端已在规划中。

你最想要哪一个?欢迎到 GitHub 仓库提 Issue 投票,或直接贡献代码。

© 2026 TangWo · TangWo 网盘(tangwo-disk 开源版)

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容