自建网盘!一款开源企业级文件存储管理系统!

0 阅读3分钟

大家好,我是 Java陈序员

在企业开发和日常项目中,文件存储、大文件上传、网盘管理是几乎每个系统都会遇到的刚需场景。从简单的附件管理,到复杂的分片上传、断点续传、多存储介质兼容,自己从零开发不仅成本高、周期长,还容易踩坑。

今天,给大家介绍一款开源文件存储管理系统,十分适合自建网盘!

项目介绍

free-fs —— 一个基于 Spring Boot 4.x 的企业级文件管理网盘系统后端,专注于提供高性能、高可靠的文件存储和管理服务。

功能特色

  • 完整的文件管理能力:不仅提供上传、下载、预览、重命名、移动、复制等常见的文件管理功能,而且支持文件分享、回收站机制功能
  • 强大的大文件传输:支持分片上传、断点续传、秒传功能,并且支持通过 SSE 技术实时推送上传进度
  • 丰富的在线预览:提供强大的文件在线预览功能,包括图片、文档、音视频、压缩包等类型文件的预览
  • 插件化存储:支持插件化存储(SPI 热插拔),一键切换多种存储介质(本地、云存储等)
  • 企业级安全保障:集成 JWT 认证,基于 Sa-Token 实现细粒度权限控制,以及文件完整性校验

技术栈

  • 后端:Spring Boot 4.0.3 + MyBatis Flex + Sa-Token
  • 数据库:MySQL 8.0/PostgreSQL 14 + Redis
  • 前端:React + TypeScript + Vite
  • 存储:本地存储、阿里云 OSS、华为云 OBS 等

快速上手

环境准备

  • JDK 21+
  • MySQL 8.0+ 或 PostgreSQL 14+
  • Redis
  • Node.js 20.0.0+

服务端

1、克隆或下载项目源码

git clone https://github.com/dromara/free-fs.git

2、将项目以 Maven 的工程形式导入到 IDEA 中

3、创建数据库(MySQL 或者 PostgreSQL 选择一种)

  • 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';

4、导入项目根目录下对应的 SQL 文件到刚创建的数据库中,初始化数据库数据

  • MySQL:_sql/mysql/free-fs.sql
  • PostgreSQL:_sql/postgresql/free-fs_pg.sql

5、修改 fs-admin 模块的 src/main/resources/application-dev.yml 中的数据库、Redis 连接信息

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

注意:使用 MySQL 时,注释掉 PostgreSQL 配置,启用 MySQL 配置即可。两种数据库配置互斥,只能选择其中一种。

6、运行 fs-admin 模块下的主启动类 com.xddcodec.fs.FsAdminApplication 运行服务

前端

1、克隆或下载项目源码

git clone https://github.com/xddcode/free-fs-frontend.git

2、进入项目目录并安装依赖

cd free-fs-frontend

pnpm install

# 推荐使用 pnpm, 如未安装,可使用如下命令安装
npm install pnpm -g 

3、启动服务

pnpm run dev

4、服务启动成功后,浏览器访问

http://localhost:5173/

默认账号/密码:admin/admin.

功能体验

  • 首页

  • 文件管理

  • 文件传输

  • 文件预览

  • 文件分享

  • 云存储配置

  • 回收站

可以说,free-fs 是一款功能全面、技术先进、安全可靠的开源网盘解决方案。如果你需要快速搭建私有云盘或企业文件服务,它能极大减少开发成本,提供媲美商业产品的体验。快去试试吧~

项目地址:https://github.com/dromara/free-fs

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!