Skip to content

dromara/free-fs

Repository files navigation

Free FS Logo

Free FS

现代化文件管理网盘系统

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

Downloads Downloads

star fork GitHub stars GitHub forks AUR

问题反馈 · 功能请求

项目文档


源码地址

Gitee:https://gitee.com/dromara/free-fs

GitHub:https://github.com/dromara/free-fs

前端仓库

🚀 推荐仓库 (最新)

Free FS/free-fs-frontend


特性

核心亮点

  • 大文件上传 - 分片上传、断点续传、秒传功能,支持 TB 级文件
  • 实时上传进度 - 实时推送上传进度,精确到分片级别
  • 秒传功能 - 基于 MD5 双重校验,相同文件秒级完成
  • 插件化存储 - SPI 机制热插拔,5 分钟接入一个新存储平台
  • 模块化架构 - 清晰的分层设计,易于维护和扩展
  • 在线预览 - 支持多种文件格式的在线预览,预览防盗链功能
  • 安全可靠 - JWT 认证、权限控制、文件完整性校验

功能特性

  • 文件管理

    • 文件上传(分片上传、断点续传、秒传)
    • 文件预览
    • 文件下载
    • 文件夹创建与管理
    • 文件/文件夹重命名、移动
    • 文件分享/授权码分享
    • 文件删除
  • 回收站

    • 文件还原(支持批量操作)
    • 彻底删除(支持批量操作)
    • 一键清空回收站
    • 自动清理机制
  • 存储平台

    • 支持多存储平台(本地、MinIO、阿里云 OSS、七牛云 Kodo、S3 体系等)
    • 一键切换存储平台
    • 平台配置管理
    • 存储空间统计

预览支持

系统默认支持以下多种文件类型的预览

  • 图片: jpg, jpeg, png, gif, bmp, webp, svg, tif, tiff
  • 文档: pdf, doc, docx, xls, xlsx, csv, ppt, pptx
  • 文本/代码: txt, log, ini, properties, yaml, yml, conf, java, js, jsx, ts, tsx, py, c, cpp, h, hpp, cc, cxx, html, css, scss, sass, less, vue, php, go, rs, rb, swift, kt, scala, json, xml, sql, sh, bash, bat, ps1, cs, toml Markdown: md, markdown
  • 音视频: mp4, avi, mkv, mov, wmv, flv, webm, mp3, wav, flac, aac, ogg, m4a, wma
  • 压缩包: zip, rar, 7z, tar (支持查看目录结构,支持预览压缩包中的文件)
  • 其他: drawio

快速开始

环境要求

  • JDK >= 21
  • Maven >= 3.8
  • MySQL >= 8.0 或 PostgreSQL >= 14
  • Redis

安装

# 克隆项目 git clone https://gitee.com/dromara/free-fs.git # 进入项目目录 cd free-fs # 编译项目 mvn clean install -DskipTests

配置

  1. 初始化数据库

    # mysql mysql -u root -p < _sql/mysql/free-fs.sql
    # postgresql psql -U postgres -c "CREATE DATABASE free-fs;" psql -U postgres -d free-fs -f _sql/postgresql/free-fs_pg.sql
  2. 修改配置文件

    修改 fs-admin/src/main/resources/application-dev.yml 中的数据库和 Redis 配置

运行

# 启动应用 cd fs-admin mvn spring-boot:run # 或使用 IDE 运行 FreeFsApplication

访问:

默认账号

账号 密码
admin admin

界面预览

功能 效果图 效果图 效果图
登录 login.png register.png forget_password.png
首页 dashboard.png
我的文件 grid_file.png file.png
回收站 recycle.png recycle_clear.png
分享文件 share.png share_create.png share_list.png
移动文件 move.png
传输 transmission.png
存储平台 storage.png add_storage.png enable_storage.png
个人信息 profile.png profile_auth.png

项目结构

free-fs/ ├── fs-admin/ # Web 管理模块 ├── fs-dependencies/ # 依赖版本管理(BOM) ├── fs-framework/ # 框架层 │ ├── fs-common-core/ # 公共核心模块 │ ├── fs-notify/ # 通知模块 │ ├── fs-orm/ # ORM 配置模块 │ ├── fs-preview/ # 预览封装模块 │ ├── fs-redis/ # Redis 配置模块 │ ├── fs-security/ # 安全认证模块 │ ├── fs-swagger/ # API 文档配置 │ ├── fs-sse/ # SSE 支持 │ └── fs-storage-plugin/ # 存储插件框架 │ ├── storage-plugin-boot/ # 插件核心管理模块 │ ├── storage-plugin-core/ # 插件核心接口模块 │ ├── storage-plugin-local/ # 本地存储插件 │ ├── storage-plugin-aliyunoss/ # 阿里云 OSS 插件 │ ├── storage-plugin-kodo/ # 七牛云 kodo 插件 │ └── storage-plugin-obs/ # 腾讯云 bos 插件 │ └── storage-plugin-rustfs/ # RustFS 插件 └── fs-modules/ # 业务模块 ├── fs-file/ # 文件管理模块 ├── fs-storage/ # 存储平台管理模块 ├── fs-system/ # 系统管理模块 ├── fs-log/ # 日志模块 └── fs-plan/ # 计划任务模块 

贡献指南

我们欢迎所有的贡献,无论是新功能、Bug 修复还是文档改进!

贡献步骤

  1. Fork 本仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的改动 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

代码规范

  • 遵循阿里巴巴 Java 开发手册
  • 使用 Lombok 简化代码
  • 编写清晰的注释
  • 提交信息遵循 Conventional Commits

Commit 规范

feat: 新功能 fix: 修复 Bug docs: 文档更新 style: 代码格式调整 refactor: 代码重构 perf: 性能优化 test: 测试相关 chore: 构建/工具链更新 

问题反馈

如果你发现了 Bug 或有功能建议,请通过以下方式反馈:


开源协议

本项目采用 Apache License 2.0 协议开源。


鸣谢


友情链接


联系方式

wx.png

  • 微信群:

wx.png

  • 微信公众号:

wp.png


❤ 捐赠

如果你认为 free-fs 项目可以为你提供帮助,或者给你带来方便和灵感,或者你认同这个项目,可以为我的付出赞助一下哦!

请给一个 ⭐️ 支持一下!

pay.png

Made with ❤️ by @xddcode

About

🔥Free-FS 开源文件管理系统:基于 Spring Boot 3.5 + MyBatis Flex + MySQL + Redis 的企业级网盘系统。支持分片上传、断点续传、秒传、文件分享、在线预览。集成阿里云OSS、七牛云Kodo、MinIO、本地存储等多种存储方式。提供文件管理、用户权限、存储配额、回收站等完整功能。适用于企业网盘、文件管理、云存储、资源管理等场景。

Topics

Resources

License

Stars

Watchers

Forks

Contributors