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配置文件解析