前几天在技术群里看到大家讨论企业网盘选型。付费的太贵开源的功能不够完整部署维护又麻烦——这些问题很多团队都遇到过。想要一个能处理大文件、支持在线预览、还能多云存储的方案确实不容易找。Dromara 开源社区前段时间新进了一个基于 Spring Boot 的文件管理系统 —— Free-FS我研究了一下功能比较完整架构也清晰分享给大家JavaGuide 所有开源项目分享都无商务性质纯分享欢迎自荐地址 https://github.com/CodingDocs/awesome-java。Free-FS 是什么Free-FS 是一个企业级文件管理系统后端基于 Spring Boot 3.5 MyBatis Flex Sa-Token React/Vue 构建。主要功能包括大文件分片上传/断点续传/秒传、多格式在线预览、多云存储插件化扩展、权限控制、回收站等。有配套的 Vue 3 前端。这里给不懂的朋友简单解释下上面提到的几个关键术语术语含义分片上传把大文件切成多个小块分别上传网络中断后只需上传未完成的分片断点续传记录上传进度中断后从断点继续不用重新上传整个文件秒传通过计算文件哈希值如 MD5、SHA-256如果服务器已有相同哈希的文件直接建立引用而不上传实际数据它解决了什么问题企业文件管理常见的几个麻烦大文件上传困难没有分片上传、断点续传网络一中断就得重新开始存储平台绑定绑死单一云存储切换成本高迁移困难预览能力弱只支持少数格式Office/图片/PDF 预览要额外配置权限管理粗糙缺少细粒度权限控制无法满足企业安全要求部署复杂依赖多、配置繁琐开箱即用困难Free-FS 用主流技术栈做了一个功能完整、架构清晰、可扩展的文件管理后端。核心功能文件管理支持列表和网格两种视图。大文件上传与秒传前端把大文件切片并行上传后端通过 SSE 实时推进度精确到每个分片的状态。网络中断后系统记录断点位置续传时从断点继续。秒传的原理是先算文件 MD5 发给服务端服务器有相同哈希的文件就直接建立引用跳过数据传输。所以上传几个 G 的文件有时能秒完。多云存储插件化存储层用 SPI 插件化设计把存储能力抽象成统一接口。内置的存储实现有本地存储、阿里云 OSS、七牛云 Kodo、AWS S3 兼容存储、RustFS。一套系统可以管理多个存储平台按需分配或一键切换。新增存储平台只要实现核心接口并注册不用改主业务代码。添加存储配置在线预览支持五大类文件预览类型支持格式图片jpg/png/gif/webp/svg 等Office 文档doc/docx/xls/xlsx/ppt/pptx需要 LibreOffice文本代码30 种编程语言语法高亮音视频流式播放压缩包查看目录结构Office 文档通过 LibreOffice 转成 PDF 后交给前端转换用进程池模式可以配置并发度和超时。权限与安全用 Sa-Token 做权限认证JWT 无状态会话支持分布式部署。权限可以控制到文件的查看、下载、编辑、删除等操作。文件分享和回收站文件分享有公开链接和授权码两种模式授权码分享能设置有效期和访问次数。回收站给删除操作一个缓冲区支持批量还原、永久删除和自动清理。回收站安装与快速上手环境要求JDK 17Maven 3.8MySQL 8.0 或 PostgreSQL 14二选一RedisLibreOffice (可选用于 Office 文档预览功能)安装步骤git clone https://gitee.com/dromara/free-fs.git cd free-fs mvn clean install -DskipTests数据库初始化MySQLCREATE DATABASE free-fs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;PostgreSQLCREATE DATABASE free-fs ENCODING UTF8 LC_COLLATEzh_CN.UTF-8 LC_CTYPEzh_CN.UTF-8;数据库创建完成之后导入项目根目录下对应的 SQL 文件到刚创建的数据库中MySQL:_sql/mysql/free-fs.sqlPostgreSQL:_sql/postgresql/free-fs_pg.sql配置与运行修改fs-admin/src/main/resources/application-dev.yml中的数据库和 Redis 配置cd fs-admin mvn spring-boot:run访问地址服务地址http://localhost:8080API 文档http://localhost:8080/swagger-ui.html默认账号admin / admin《SpringAI 智能面试平台RAG 知识库》配套实战项目教程正在更新涉及到 Prompt Engineering、大模型集成、RAG检索增强生成、高性能对象存储与向量数据库。后续的话还会同步上Agent 项目。内容非常全面非常适合想要实战 AI 项目或者准备 AI 大模型应用开发岗位面试的朋友来一张刚写完的3.4w 字35 道题目的 RAG 面试题总结大家感受一下点此链接了解 星球技术架构技术栈选型后端用 Spring Boot 3.5.4搭配 MyBatis Flex 做 ORM 层。MyBatis Flex 是 MyBatis 的增强版和 MyBatis-Plus 有些差异MyBatis Flex 的详细介绍可以参考这篇文章再见 MyBatis这款 ORM 框架确实太优雅认证授权用 Sa-Token比 Spring Security 简洁。数据库支持 MySQL 8.0 和 PostgreSQL 14HikariCP 连接池配合 Caffeine 本地缓存和 Redis 分布式缓存。项目结构多模块 Maven 结构存储插件用 SPI 设计storage-plugin-core定义接口各存储实现添加新插件模块就行。与其他方案对比对比维度Free-FSMinIONextcloudSeafile技术栈Spring Boot 3.xGoPHPGo/C定位后端服务对象存储完整网盘完整网盘大文件上传分片/断点续传/秒传需自行实现支持支持在线预览多格式支持需自行实现支持支持多云存储插件化切换单一支持支持权限管理Sa-Token 细粒度简单细粒度细粒度部署难度中需数据库低中中开源协议Apache 2.0AGPL v3AGPL v3GPL-3.0只做对象存储的话 MinIO 更合适需要完整网盘 UI 和协作功能的话 Nextcloud 或 Seafile 更好需要一个可定制、易集成的文件管理后端Free-FS 可以考虑。总结Free-FS 用 Spring Boot 3.x MyBatis Flex Sa-Token 做了一个功能完整的企业级文件管理后端。优势功能完整开箱即用大文件上传分片/断点续传/秒传插件化存储扩展多格式在线预览Sa-Token 权限管理Apache 2.0 协议友好。局限需要部署数据库MySQL/PostgreSQL RedisOffice 预览要配置 LibreOffice。适用场景搭建企业级文件管理系统、需要多云存储支持、需要大文件上传能力。建议先部署基础版本跑通上传下载流程再按需要接入云存储和配置预览。后端地址https://gitee.com/dromara/free-fs前端地址https://gitee.com/xddcode/free-fs-frontend⭐️推荐:Java 面试 后端通用面试指南《SpringAI 智能面试平台RAG 知识库》Java 学习路线(最新版4w字)后端面试 PDF 最新版