关键字:SpringBoot4,Java,MyBatis-Files,Sa-Token, 网盘,文件管理,分片上传,多存储插件,在线预览,RBAC
项目名称:开源企业网盘文件管理系统(含源码)
项目介绍
是基于 Spring Boot 4.x 开发的企业级文件存储网盘系统,采用模块化分层架构与 SPI 插件化存储设计,专注提供高性能文件上传、存储、在线预览与团队协作能力。系统采用标准 B/S 前后端分离架构,划分管理员、普通成员两类权限体系,底层集成 Sa-Token 与 JWT 完成身份校验,基于 RBAC 实现精细化权限管控。
系统核心支持 TB 级大文件分片上传、断点续传、MD5 秒传,通过 SSE 实时推送上传进度;兼容本地、MinIO、阿里云 OSS、七牛云等多类存储平台,5 分钟快速接入新存储介质。内置完整工作空间团队协作功能,支持成员邀请、空间隔离、角色分配;覆盖图片、文档、音视频、压缩包全格式在线预览,配套回收站、文件分享、定时任务、操作日志等配套模块,支持中英文国际化切换,适配 MySQL、PostgreSQL 主流数据库,可私有化离线部署,适合企业内部云盘、资源文件管理、文档中台等场景。
项目结构目录

3.1核心底层框架
项目平台采用成熟 B/S 三层架构,持久层使用 MyBatis-Flex 简化数据库 CRUD,缓存依赖 Redis 提升文件元数据查询速度,支持 MySQL 8.0、PostgreSQL14 双数据库适配。后端基于 Spring Boot4 快速开发,SPI 插件化存储架构解耦存储逻辑,无需改动业务代码即可切换云存储服务商。安全层面整合 Sa-Token+JWT 实现登录认证、接口鉴权,配套文件 MD5 完整性校验、预览防盗链机制。
系统解决传统文件系统大文件传输卡顿、存储切换繁琐、团队权限管控薄弱、文件预览格式受限等痛点,支持 Jar、Docker 容器两种部署方式,模块化代码结构清晰,注释完善,二次开发门槛低,企业私有化文件存储场景落地性价比高。
3.2后端技术栈
开发语言:Java 21
核心框架:Spring Boot4、Spring Web
持久层:MyBatis-Flex
安全框架:Sa-Token、JWT
缓存中间件:Redis
实时推送:SSE 服务推送上传进度
存储扩展:SPI 插件机制,支持本地 / MinIO / 阿里云 OSS / 七牛 / S3
数据库:MySQL 8.0+、PostgreSQL 14+
部署架构:Jar 包独立运行、Docker 容器化部署
3.3前端技术栈
基础框架:Vue3 + Vite
UI 组件:Element Plus
交互能力:拖拽文件上传、分片进度实时展示、多格式文件在线预览、拖拽式空间成员管理、文件分享弹窗、回收站批量操作
国际化:中英文双语切换
接口文档:Swagger UI 在线接口调试页面
3.4开发及生产环境
系统环境:Linux、Windows,支持国产操作系统
版本管理:Maven3.8+、Git
运维能力:定时任务自动清理回收站、全量操作日志记录、存储空间统计、API 接口文档在线调试
容器支持:提供 Dockerfile 一键打包镜像
3.5数据库
系统设计多组核心业务数据表,核心表包含:用户表 (fs_user)、角色表 (fs_role)、权限表 (fs_permission)、工作空间表 (fs_workspace)、空间成员表 (fs_workspace_user)、文件主表 (fs_file)、文件分享表 (fs_share)、存储配置表 (fs_storage_config)、操作日志表 (fs_oper_log)、定时任务表 (fs_task)。各表通过外键关联,完整覆盖用户权限、文件生命周期、团队空间、存储配置全业务数据链路,支持 PostgreSQL 布尔、JSON 特殊字段适配。
项目主要功能
4.1 管理员功能模块
管理员拥有系统全局最高权限,管控存储平台、全部用户、工作空间、系统参数、定时任务、日志记录。
4.1.1 用户与权限管理
查看平台全部注册用户,新增、禁用账号;基于 RBAC 创建角色,分配文件上传、下载、分享、空间管理等功能权限;支持用户名、邮箱检索用户,管控用户存储空间配额。
4.1.2 多存储平台配置管理
可视化新增 / 编辑存储介质配置,支持本地、MinIO、阿里云 OSS、七牛云等插件一键切换;查看各存储占用容量统计,测试存储连通性,配置文件访问防盗链参数。
4.1.3 工作空间全局管控
查看所有团队工作空间,可创建公共空间、管控空间成员上限;查看各空间文件存储总量,回收闲置空间资源;管理成员邀请邮件模板配置。
4.1.4 文件与系统运维
全局查看所有用户文件、分享链接,可删除违规文件;配置回收站自动清理定时任务;查看全平台操作日志、登录日志,支持日志检索导出;管理系统国际化语言文本。
4.1.5 文件分享管控
查看平台全部公开分享链接,可批量失效违规分享;配置分享有效期、提取码默认规则,管控外部文件访问权限。
4.2 用户功能模块
普通用户面向文件存储与团队协作场景,提供个人文件、工作空间、文件分享、回收站管理能力。
4.2.1 账号登录与个人中心
支持账号密码、邮箱验证码两种登录方式,JWT 维持会话;修改个人密码、邮箱、头像;查看个人存储空间使用量,管理个人收藏文件。
4.2.2 文件全生命周期管理
单文件 / 拖拽批量上传,大文件自动分片、断点续传、MD5 秒传;文件 / 文件夹新建、重命名、移动、复制、批量删除;支持图片、Office、PDF、音视频、压缩包近百种格式在线预览,可预览压缩包内部子文件。
4.2.3 文件分享功能
为文件 / 文件夹生成分享链接,设置提取码、有效时长;管理我的分享列表,随时关闭分享权限;接收他人分享文件并保存至个人空间。
4.2.4 工作空间团队协作
创建专属工作空间,通过邮件邀请团队成员;为空间成员分配只读 / 读写 / 管理员权限;切换多工作空间独立管理文件,空间数据互相隔离。
4.2.5 回收站管理
删除文件自动进入回收站,支持单条 / 批量还原、彻底删除;等待系统定时任务自动清理过期回收站文件。
4.3 通用功能模块
4.3.1 文件上传统一接口
全局上传接口封装,自动分片处理大文件,SSE 实时推送每一片上传进度;基于文件 MD5 校验实现秒传,重复文件无需重复上传。
4.3.2 SPI 插件化存储
标准化存储接口,新增存储介质仅需实现插件,无需修改核心业务代码;运行时动态切换存储后端,文件自动兼容多存储读取。
4.3.3 RBAC 权限控制
拦截器校验每个接口访问权限,区分管理员、空间管理员、普通成员三级权限;限制用户上传大小、存储空间上限、分享创建数量。
4.3.4 国际化多语言
系统前端、后端提示文本统一配置中英文,一键切换语言,可扩展其他语种。
4.3.5 定时任务与日志
定时任务自动清理过期回收站文件;所有文件操作、登录、分享、存储修改均记录操作日志,支持溯源排查。
项目安装和部署
5.1 数据库初始化
MySQL 环境:创建 free-fs 数据库,执行_sql/mysql/free-fs.sql 脚本初始化表结构与基础数据;
PostgreSQL 环境:先执行建库语句,再导入_sql/postgresql/free-fs_pg.sql 脚本。
5.2 后端项目构建
进入项目根目录执行 Maven 打包命令,跳过单元测试:
plaintext
mvn clean install -DskipTests
打包完成后 fs-admin 模块生成可执行 Jar 包。
5.3 前端项目构建
前端独立仓库下载源码,进入前端目录执行:
plaintext
pnpm install
pnpm dev
打包命令 pnpm build 生成静态页面,可独立 Nginx 部署或对接后端接口。
5.4 应用启动与运行
Jar 启动方式
plaintext
cd fs-admin
mvn spring-boot:run
或直接运行打包后的 Jar:
plaintext
java -jar fs-admin.jar
Spring Boot 自动加载 yml 配置、连接 Redis 与数据库,默认服务端口 8080。
访问地址:
后端服务:http://localhost:8080
API 文档:http://localhost:8080/swagger-ui.html
前端页面:前端项目启动默认 5173 端口
默认管理员账号:admin,密码 admin,首次登录建议修改密码。
这个系统实际效果图片展示
登录页、个人文件首页、文件预览、工作空间管理、存储配置、回收站、文件分享页面可视化界面。



这个源码适合的学习人群
该项目代码结构清晰、注释规范、无过度封装、轻量化易上手,极其适合四类人群学习:
Java后端初学者、
微信小程序开发学习者、
计算机专业在校学生、
个人开源项目爱好者。
这个项目源码获取方式
关注公众号,开源仓库地址:https://gitee.com/dromara/free-fs
夜雨聆风