之前分享过一篇使用MinIO+kkFileView实现文件存储和预览的解决方案,这种方案面临着扩展性差、维护成本高、多平台兼容性等缺点。 最近发现Free FS能解决这些痛点,而且是一套现代化的分布式文件存储解决方案,分享给大家!
Free FS简介
Free FS 是一个基于 Spring Boot 3.x 的企业级文件管理系统,专注于提供高性能、高可靠的文件存储和管理服务。
Free FS核心特性如下:
- 大文件上传:支持分片上传、断点续传、秒传功能,轻松应对 TB 级文件。
- 插件化存储:基于 SPI 机制,5 分钟即可接入新存储平台(本地、OSS、S3 等)。
- 模块化架构:清晰的分层设计,代码结构简洁,易于维护和二次开发。
- 安全可靠:集成 JWT 认证、完善的权限控制体系及文件完整性校验。
- 实时进度:通过 SSE 技术实时推送上传进度和系统通知,用户体验流畅。
下面是Free FS使用过程中的效果图,功能还是挺强大的!
技术栈
Free FS 采用了现阶段主流的前后端分离技术栈实现,具体技术栈如下:
- 后端:Spring Boot 3.5.4 + MyBatis Flex + Sa-Token
- 前端:React 19 + TypeScript + Vite 6 + shadcn/ui
- 存储支持:本地存储、阿里云 OSS、RustFS、七牛云 Kodo 及各类 S3 兼容存储
这或许是一个对你有用的开源项目,mall项目是一套基于 SpringBoot3 + Vue3 的电商系统(Github标星60K),后端支持多模块和微服务架构,采用Docker和K8S部署。包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员、支付等功能!
- Boot项目:github.com/macrozheng/…
- Cloud项目:github.com/macrozheng/…
- 教程网站:www.macrozheng.com
项目演示:
安装
后端
运行后端项目前,请先安装好mysql 8.0以上版本及redis。
- 首先下载项目源码,下载完成后将项目导入IDEA中,下载地址:gitee.com/dromara/fre…
-
然后在mysql中创建数据库
free-fs,将项目中_sql/mysql/free-fs.sql脚本导入到数据库中; -
之后修改
fs-admin模块下的配置文件application-dev.yml,将其中的mysql和redis连接配置修改成自己的;
- 最后通过FsAdminApplication中的main方法来运行后端项目。
前端
- 首先下载项目源码,下载完成后将项目导入VSCode中,下载地址:gitee.com/xddcode/fre…
- 之后通过如下命令安装依赖并运行项目:
# 安装依赖
pnpm indall
# 运行项目
pnpm dev
- 运行成功后即可访问项目的web页面了,默认账号密码为
admin/admin,访问地址:http://localhost:5173
使用
控制台
登录成功后即可通过控制台查看存储的概览信息。
文件管理
上传支持点击或拖拽多个文件上传,操作方便。
支持列表和网格两种视图显示。
存储平台
支持多个存储平台自由切换,默认为本地存储,可切换为阿里云OSS等云存储。
分享
右键文件选择分享,可以生成分享链接。
回收站
具有类似windows的回收站功能,误删文件可轻松找回。
预览支持
支持多种文件的在线预览,堪称万能文件预览神器。
docx预览
pptx预览
pdf预览
总结
Free FS 凭借其现代化的技术栈、灵活的插件化架构以及丰富的功能特性,为企业和个人提供了一套高效、安全的文件管理解决方案,感兴趣的小伙伴可以尝试下它!