自建网盘!一款开源企业级文件存储管理系统!
<p>大家好,我是 <code>Java陈序员</code>。</p><p>在企业开发和日常项目中,文件存储、大文件上传、网盘管理是几乎每个系统都会遇到的刚需场景。从简单的附件管理,到复杂的分片上传、断点续传、多存储介质兼容,自己从零开发不仅成本高、周期长,还容易踩坑。</p>
<p>今天,给大家介绍一款开源文件存储管理系统,十分适合自建网盘!</p>
<blockquote>
<p>关注微信公众号:【Java陈序员】,获取<strong>开源项目分享、AI副业分享、超200本经典计算机电子书籍等。</strong></p>
</blockquote>
<h2 id="项目介绍">项目介绍</h2>
<p><code>free-fs</code> —— 一个基于 Spring Boot 4.x 的企业级文件管理网盘系统后端,专注于提供高性能、高可靠的文件存储和管理服务。</p>
<p><strong>功能特色</strong>:</p>
<ul>
<li><strong>完整的文件管理能力</strong>:不仅提供上传、下载、预览、重命名、移动、复制等常见的文件管理功能,而且支持文件分享、回收站机制功能</li>
<li><strong>强大的大文件传输</strong>:支持分片上传、断点续传、秒传功能,并且支持通过 SSE 技术实时推送上传进度</li>
<li><strong>丰富的在线预览</strong>:提供强大的文件在线预览功能,包括图片、文档、音视频、压缩包等类型文件的预览</li>
<li><strong>插件化存储</strong>:支持插件化存储(SPI 热插拔),一键切换多种存储介质(本地、云存储等)</li>
<li><strong>企业级安全保障</strong>:集成 JWT 认证,基于 Sa-Token 实现细粒度权限控制,以及文件完整性校验</li>
</ul>
<p><strong>技术栈</strong>:</p>
<ul>
<li><strong>后端</strong>:Spring Boot 4.0.3 + MyBatis Flex + Sa-Token</li>
<li><strong>数据库</strong>:MySQL 8.0/PostgreSQL 14 + Redis</li>
<li><strong>前端</strong>:React + TypeScript + Vite</li>
<li><strong>存储</strong>:本地存储、阿里云 OSS、华为云 OBS 等</li>
</ul>
<h2 id="快速上手">快速上手</h2>
<h3 id="环境准备">环境准备</h3>
<ul>
<li>JDK 21+</li>
<li>MySQL 8.0+ 或 PostgreSQL 14+</li>
<li>Redis</li>
<li>Node.js 20.0.0+</li>
</ul>
<h3 id="服务端">服务端</h3>
<p>1、克隆或下载项目源码</p>
<pre><code class="language-bash">git clone https://github.com/dromara/free-fs.git
</code></pre>
<p>2、将项目以 Maven 的工程形式导入到 IDEA 中</p>
<p>3、创建数据库(MySQL 或者 PostgreSQL 选择一种)</p>
<ul>
<li>MySQL</li>
</ul>
<pre><code class="language-sql">CREATE DATABASE `free-fs` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
</code></pre>
<ul>
<li>PostgreSQL</li>
</ul>
<pre><code class="language-sql">CREATE DATABASE free-fs ENCODING 'UTF8' LC_COLLATE='zh_CN.UTF-8' LC_CTYPE='zh_CN.UTF-8';
</code></pre>
<p>4、导入项目根目录下对应的 SQL 文件到刚创建的数据库中,初始化数据库数据</p>
<ul>
<li>MySQL:<code>_sql/mysql/free-fs.sql</code></li>
<li>PostgreSQL:<code>_sql/postgresql/free-fs_pg.sql</code></li>
</ul>
<p>5、修改 <code>fs-admin</code> 模块的 <code>src/main/resources/application-dev.yml</code> 中的数据库、Redis 连接信息</p>
<pre><code class="language-yaml">spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://127.0.0.1:3306/free-fs?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
# postgresql数据库配置
# url: jdbc:postgresql://127.0.0.1:5432/free-fs?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
# username: postgres
# password: postgres
# driver-class-name: org.postgresql.Driver
data:
redis:
host: 127.0.0.1
port: 6379
password:
database: 0
</code></pre>
<blockquote>
<p>注意:使用 MySQL 时,注释掉 PostgreSQL 配置,启用 MySQL 配置即可。两种数据库配置互斥,只能选择其中一种。</p>
</blockquote>
<p>6、运行 <code>fs-admin</code> 模块下的主启动类 <code>com.xddcodec.fs.FsAdminApplication</code> 运行服务</p>
<h3 id="前端">前端</h3>
<p>1、克隆或下载项目源码</p>
<pre><code class="language-bash">git clone https://github.com/xddcode/free-fs-frontend.git
</code></pre>
<p>2、进入项目目录并安装依赖</p>
<pre><code class="language-bash">cd free-fs-frontend
pnpm install
# 推荐使用 pnpm, 如未安装,可使用如下命令安装
npm install pnpm -g
</code></pre>
<p>3、启动服务</p>
<pre><code class="language-bash">pnpm run dev
</code></pre>
<p>4、服务启动成功后,浏览器访问</p>
<pre><code class="language-bash">http://localhost:5173/
</code></pre>
<blockquote>
<p>默认账号/密码:<code>admin</code>/<code>admin</code>.</p>
</blockquote>
<h2 id="功能体验">功能体验</h2>
<ul>
<li><strong>首页</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171004.png"></p>
<ul>
<li><strong>文件管理</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171014.png"></p>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171030.png"></p>
<ul>
<li><strong>文件传输</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171050.png"></p>
<ul>
<li><strong>文件预览</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171115.png"></p>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171136.png"></p>
<ul>
<li><strong>文件分享</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171202.png"></p>
<ul>
<li><strong>云存储配置</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171221.png"></p>
<ul>
<li><strong>回收站</strong></li>
</ul>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/free-fs/img-20260411171234.png"></p>
<p>可以说,<code>free-fs</code> 是一款功能全面、技术先进、安全可靠的开源网盘解决方案。如果你需要快速搭建私有云盘或企业文件服务,它能极大减少开发成本,提供媲美商业产品的体验。快去试试吧~</p>
<pre><code class="language-bash">项目地址:https://github.com/dromara/free-fs
</code></pre>
<h2 id="最后">最后</h2>
<p>推荐的开源项目已经收录到 <code>GitHub</code> 项目,欢迎 <code>Star</code>:</p>
<pre><code>https://github.com/chenyl8848/great-open-source-project
</code></pre>
<p>或者访问网站,进行在线浏览:</p>
<pre><code>https://chencoding.top:8090/#/
</code></pre>
<p><img src="https://create-center.oss-cn-shenzhen.aliyuncs.com/github/img-20250608222400.png"></p>
<p><strong>我创建了一个开源项目交流群,方便大家在群里交流、讨论开源项目</strong>。</p>
<p><strong>但是任何人在群里打任何广告,都会被 T 掉</strong>。</p>
<p><strong>如果你对这个交流群感兴趣或者在使用开源项目中遇到问题,可以通过如下方式进群</strong>:</p>
<p><strong>关注微信公众号:【Java陈序员】,回复【开源项目交流群】进群,或者通过公众号下方的菜单添加个人微信,并备注【开源项目交流群】,通过后拉你进群</strong>。</p>
<blockquote>
<p>大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!</p>
</blockquote>
<hr><br><br>
来源:https://www.cnblogs.com/codechen8848/p/19875183
頁:
[1]