EasyPan 网盘项目介绍
一、项目概述
EasyPan 是一个基于 Vue3 + SpringBoot 的网盘系统,支持文件存储、在线预览、分享协作及后台管理,技术栈涵盖主流前后端框架及中间件(MySQL、Redis、FFmpeg)。
二、核心功能模块
-
用户认证
- 注册/登录(含QQ第三方登录)
- 邮箱验证码、密码找回
- 管理员后台启用/禁用账户
-
文件管理
- 上传:分片上传、秒传、断点续传、批量上传
- 操作:预览/下载、分享、重命名、移动、删除
- 在线预览:
- 多媒体:视频/音频播放(FFmpeg转码)、图片浏览
- 文档:Excel/Word/PDF/文本在线解析
-
分享机制
- 生成分享链接/分享码
- 外部分享页支持预览与转存到个人网盘
- 分享者随时取消分享
-
回收站与恢复
- 文件删除后进入回收站,可还原或永久删除
-
后台管理(管理员)
- 用户文件监控:查看/删除所有用户文件
- 空间分配:设置用户初始存储空间
- 系统配置:邮件模板、初始化参数
三、技术架构亮点
层级 | 技术选型 | 关键应用场景 |
---|---|---|
前端 | Vue3 | 响应式界面、组件化开发 |
后端 | SpringBoot | RESTful API、文件处理逻辑 |
数据库 | MySQL | 用户信息、文件元数据存储 |
缓存 | Redis | 高频操作(如验证码、秒传Hash)加速 |
工具 | FFmpeg | 音视频转码适配在线播放 |
四、关键技术创新点
-
高效上传方案
- 分片上传 + 断点续传:保障大文件传输稳定性
- 秒传技术(文件Hash比对):减少重复上传流量
-
跨格式预览能力
- 利用FFmpeg处理音视频转码,适配网页播放
- 文档类文件通过后端解析生成可预览格式
-
安全与权限控制
- 分享链接有效期管理
- 管理员全局监控防止违规文件传播
EasyPan项目结构解析
一、项目骨架图解
[项目根目录]
├── 📁 .mvn/ # Maven构建系统目录
└── 📁 src/ # 源代码核心区└── 📁 main/ # 主代码分支├── 📁 java/ # Java源代码│ └── 📁 com.easypan/ # 核心业务包│ ├── 📁 annotation/ # 自定义注解│ ├── 📁 aspect/ # AOP切面│ ├── 📁 component/ # 通用组件│ ├── 📁 controller/ # MVC控制器│ ├── 📁 entity/ # 数据库实体│ ├── 📁 exception/ # 异常处理│ ├── 📁 mappers/ # MyBatis映射接口│ ├── 📁 service/ # 业务服务层│ ├── 📁 utils/ # 工具类库│ └── 🗄️ EasyPanApplication.java # SpringBoot启动类└── 📁 resources/ # 资源配置├── 📁 com.easypan.mappers/ # MyBatis XML映射文件├── 🗄️ application.properties # 应用配置└── 🗄️ logback-spring.xml # 日志配置
二、关键目录功能说明
1. 核心业务包(com.easypan)
目录 | 图标 | 功能说明 | 典型文件示例 |
---|---|---|---|
annotation/ | 📁 | 存放自定义注解 | @LoginValidator |
aspect/ | 📁 | 切面编程(日志/权限/事务) | LogAspect.java |
controller/ | 📁 | 接收HTTP请求 | FileUploadController.java |
entity/ | 📁 | 数据库表映射实体 | User.java |
exception/ | 📁 | 全局异常处理器 | GlobalExceptionHandler.java |
2. 配置文件解析
文件 | 图标 | 作用 | 关键配置项示例 |
---|---|---|---|
application.properties | 🗄️ | 应用级配置 | server.port=8080 |
logback-spring.xml | 🗄️ | 日志格式/输出控制 | <pattern>%d{yyyy-MM-dd HH:mm:ss}</pattern> |
【EasyPan】application.properties配置文件解析