安装与快速上手
环境要求
- JDK 17+
- Maven 3.8+
- MySQL 8.0+ 或 PostgreSQL 14+(二选一)
- Redis
- LibreOffice (可选,用于 Office 文档预览功能)
安装步骤
git clone https://gitee.com/dromara/free-fs.git
cd free-fs
mvn clean install -DskipTests
数据库初始化
MySQL:
CREATE DATABASE `free-fs` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
PostgreSQL:
CREATE DATABASE free-fs ENCODING 'UTF8' LC_COLLATE='zh_CN.UTF-8' LC_CTYPE='zh_CN.UTF-8';
数据库创建完成之后,导入项目根目录下对应的 SQL 文件到刚创建的数据库中:
- MySQL:
_sql/mysql/free-fs.sql - PostgreSQL:
_sql/postgresql/free-fs_pg.sql
配置与运行
修改 fs-admin/src/main/resources/application-dev.yml 中的数据库和 Redis 配置:
cd fs-admin
mvn spring-boot:run
访问地址:
- 服务地址:http://localhost:8080
- API 文档: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 14+,HikariCP 连接池,配合 Caffeine 本地缓存和 Redis 分布式缓存。
项目结构
多模块 Maven 结构:

存储插件用 SPI 设计,storage-plugin-core 定义接口,各存储实现添加新插件模块就行。
与其他方案对比
| 对比维度 | Free-FS | MinIO | Nextcloud | Seafile |
|---|---|---|---|---|
| 技术栈 | Spring Boot 3.x | Go | PHP | Go/C |
| 定位 | 后端服务 | 对象存储 | 完整网盘 | 完整网盘 |
| 大文件上传 | 分片/断点续传/秒传 | 需自行实现 | 支持 | 支持 |
| 在线预览 | 多格式支持 | 需自行实现 | 支持 | 支持 |
| 多云存储 | 插件化切换 | 单一 | 支持 | 支持 |
| 权限管理 | Sa-Token 细粒度 | 简单 | 细粒度 | 细粒度 |
| 部署难度 | 中(需数据库) | 低 | 中 | 中 |
| 开源协议 | Apache 2.0 | AGPL v3 | AGPL v3 | GPL-3.0 |
只做对象存储的话 MinIO 更合适;需要完整网盘 UI 和协作功能的话 Nextcloud 或 Seafile 更好;需要一个可定制、易集成的文件管理后端,Free-FS 可以考虑。