# springboot-rustfs **Repository Path**: Marsfactory/springboot-rustfs ## Basic Information - **Project Name**: springboot-rustfs - **Description**: springboot3整合rustfs - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-10-29 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚀 火星云盘系统 (Mars Cloud Drive) 一个基于 Spring Boot 3 和 RustFS(S3兼容对象存储)的现代化云盘系统,采用前后端不分离架构,界面设计参考百度网盘,提供流畅的用户体验。 ## ✨ 功能特性 ### 用户系统 - 👤 **用户注册** - 支持新用户注册,默认10GB存储空间 - 🔐 **用户登录** - 基于Session的身份认证 - 📊 **存储空间管理** - 实时显示已用空间和剩余空间 - 🚪 **退出登录** - 安全退出账户 ### 文件管理 - 📁 **文件上传** - 支持拖拽上传,批量上传,最大100MB - 📥 **文件下载** - 一键下载文件 - ✏️ **文件重命名** - 支持文件和文件夹重命名 - 🗑️ **文件删除** - 安全删除文件和文件夹 - 📂 **文件夹管理** - 创建、删除、重命名文件夹 - 🔍 **文件夹导航** - 支持多层级文件夹浏览 ### 智能分类 - 🖼️ **图片筛选** - 快速查看所有图片文件(jpg, png, gif等) - 📄 **文档筛选** - 筛选文档文件(pdf, doc, xls等) - 🎬 **视频筛选** - 查看所有视频文件(mp4, avi等) - 🎵 **音频筛选** - 筛选音频文件(mp3, wav等) - 📁 **全部文件** - 查看所有文件和文件夹 ### 界面特性 - 🎨 **现代化UI** - 参考百度网盘设计,简洁美观 - 📱 **响应式设计** - 完美适配PC和移动设备 - 🚀 **火星主题** - 独特的火星云盘系统品牌设计 - ⚡ **流畅交互** - 悬停效果、动画过渡 - 🎯 **拖拽上传** - 支持拖拽文件到上传区域 ## 🛠️ 技术栈 ### 后端 - **Spring Boot 3.2.0** - 核心框架 - **Spring Web** - Web 开发 - **Thymeleaf** - 模板引擎 - **AWS SDK for S3** - S3 客户端(兼容 RustFS) - **Lombok** - 简化代码 - **Apache Commons IO** - IO 工具 ### 前端 - **Bootstrap 5.3** - UI 框架 - **Bootstrap Icons** - 图标库 - **原生 JavaScript** - 交互逻辑 ## 📋 项目结构 ``` springboot-rustfs/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/rustfs/ │ │ │ ├── RustFsApplication.java # 主应用类 │ │ │ ├── config/ │ │ │ │ └── RustFsConfig.java # RustFS配置 │ │ │ ├── controller/ │ │ │ │ └── FileController.java # 文件控制器 │ │ │ ├── service/ │ │ │ │ └── FileService.java # 文件服务 │ │ │ └── dto/ │ │ │ ├── FileInfo.java # 文件信息DTO │ │ │ └── ApiResponse.java # API响应封装 │ │ └── resources/ │ │ ├── application.yml # 应用配置 │ │ └── templates/ │ │ └── index.html # 主页面 │ └── test/ └── pom.xml # Maven配置 ``` ## 🚀 快速开始 ### 环境要求 - JDK 17 或更高版本 - Maven 3.6+ - RustFS 服务(或其他 S3 兼容对象存储服务) ### 配置说明 1. **修改配置文件** `src/main/resources/application.yml` ```yaml rustfs: endpoint: https://s3.rustfs.com # RustFS 端点地址 region: us-east-1 # 区域 access-key: your-access-key # 访问密钥 secret-key: your-secret-key # 密钥 bucket-name: file-system # 存储桶名称 path-style-access: true # 路径样式访问 ``` 2. **替换为您的实际配置** - `endpoint`: RustFS 服务的端点地址 - `access-key`: 您的 Access Key - `secret-key`: 您的 Secret Key - `bucket-name`: 存储桶名称(系统会自动创建) ### 运行项目 #### 方式一:使用 Maven ```bash # 编译项目 mvn clean package # 运行应用 mvn spring-boot:run ``` #### 方式二:使用 JAR 包 ```bash # 编译打包 mvn clean package # 运行 JAR java -jar target/springboot-rustfs-1.0.0.jar ``` #### 方式三:使用 IDE 直接在 IDEA 或 Eclipse 中运行 `RustFsApplication.java` 主类。 ### 访问应用 启动成功后,在浏览器中访问: ``` http://localhost:8080 ``` ### 默认账户 系统已内置默认管理员账户: ``` 用户名:admin 密码:admin123 ``` 您也可以点击「立即注册」创建新账户。 ## 📖 使用指南 ### 登录注册 1. **首次使用**:访问 `http://localhost:8080` 会自动跳转到登录页 2. **登录**:使用默认账户 `admin/admin123` 或自己注册的账户登录 3. **注册**:点击「立即注册」,填写用户信息创建新账户 ### 文件操作 #### 上传文件 1. 点击「上传」按钮 2. 选择文件或拖拽文件到上传区域 3. 点击「开始上传」按钮 #### 创建文件夹 1. 点击「新建文件夹」按钮 2. 输入文件夹名称 3. 点击「创建」按钮 #### 浏览文件夹 - 点击文件夹名称即可进入 - 使用顶部面包屑导航可快速跳转到上级目录 #### 文件下载、重命名、删除 - **下载**:点击文件右侧的下载图标 - **重命名**:点击右侧的编辑图标 - **删除**:点击右侧的删除图标(不可恢复,请谨慎操作) ### 文件分类 使用左侧边栏快速筛选文件: - **全部文件**:查看所有文件和文件夹 - **图片**:筛选所有图片文件(支持jpg、png、gif等格式) - **文档**:筛选所有文档文件(支持pdf、doc、xls等格式) - **视频**:筛选所有视频文件(支持mp4、avi等格式) - **音频**:筛选所有音频文件(支持mp3、wav等格式) ### 存储空间管理 **动态计算存储空间:** - 顶部导航栏实时显示存储空间使用情况 - 悬停可查看详细的已用/总量信息 - **点击存储空间区域可手动刷新**统计数据 **自动更新时机:** - ✅ 用户登录时自动计算 - ✅ 上传文件后自动更新 - ✅ 删除文件后自动更新 - ✅ 从回收站恢复/删除文件后自动更新 - ✅ 清空回收站后自动更新 **存储配额:** - 管理员账户(admin):100GB - 新注册用户:10GB ### 退出登录 点击右上角头像图标,确认退出即可 ## 🎨 界面特色 - **渐变色设计** - 紫色渐变背景,视觉效果出色 - **卡片式布局** - 圆角卡片,阴影效果 - **流畅动画** - 悬停、点击等交互动画 - **图标丰富** - 不同文件类型显示不同图标 - **响应式设计** - 自适应各种屏幕尺寸 ## 📝 API 接口 ### 文件列表 ``` GET /api/files?path=folder/subfolder ``` ### 上传文件 ``` POST /upload FormData: file, path ``` ### 创建文件夹 ``` POST /folder FormData: folderName, path ``` ### 下载文件 ``` GET /download?key=file-key ``` ### 重命名 ``` PUT /rename?key=old-key&newName=new-name ``` ### 删除 ``` DELETE /delete?key=file-key&isFolder=false ``` ## 🔧 高级配置 ### 修改上传文件大小限制 在 `application.yml` 中修改: ```yaml spring: servlet: multipart: max-file-size: 100MB # 单个文件大小 max-request-size: 100MB # 请求总大小 ``` ### 修改服务端口 ```yaml server: port: 8080 # 修改为您想要的端口 ``` ## 📦 依赖说明 主要依赖版本: - Spring Boot: 3.2.0 - AWS SDK S3: 2.21.0 - Bootstrap: 5.3.0 - Bootstrap Icons: 1.11.1 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License ## 🔗 相关链接 - [Spring Boot 官方文档](https://spring.io/projects/spring-boot) - [AWS SDK for Java](https://aws.amazon.com/sdk-for-java/) - [Bootstrap 5 文档](https://getbootstrap.com/docs/5.3/) ## 💡 提示 1. 首次运行时,系统会自动创建配置的存储桶(如果不存在) 2. 确保 RustFS 服务正常运行且网络可达 3. Access Key 和 Secret Key 请妥善保管,不要泄露 4. 建议在生产环境中使用 HTTPS 协议 --- **享受您的文件管理体验!** 🎉