# JmalCloud 公共空间版 - 个人网盘服务端 > 基于 [JmalCloud](https://github.com/jamebal/jmal-cloud-view) 改造的公共空间版本 ## 🚀 项目简介 这是一个基于原版 JmalCloud 改造的**公共空间版本**,将原来的用户独立文件空间模式改为**所有用户共享同一文件空间**的模式。 ### 📋 主要变更 - ✅ **公共文件空间**:所有用户登录后看到相同的文件列表 - ✅ **统一存储**:文件存储在统一的公共目录中,不再按用户分离 - ✅ **共享操作**:任何用户都可以上传、下载、删除、重命名所有文件 - ✅ **保留认证**:用户登录验证和基本权限控制仍然有效 - ✅ **元数据保留**:文件的创建者信息仍保存在数据库中 - ✅ **前端集成**:前端Vue.js项目已集成到仓库中 (`frontend/` 目录) - ✅ **一键启动**:提供完整的前后端启动脚本 ## 🔧 核心改造内容 ### 后端修改 1. **文件存储路径统一化** - 移除用户名路径组件 2. **数据库查询去用户化** - 移除 userId 过滤条件 3. **文件操作公共化** - 所有文件操作适配公共空间 4. **用户目录管理适配** - 不再创建用户专属目录 ### 前端集成 - ✅ **完整集成** - 前端Vue.js项目已集成到仓库 - ✅ **API兼容** - 保持原有接口参数,仅后端逻辑调整 - ✅ **一站式开发** - 一个仓库包含完整前后端代码 ## 🎯 适用场景 - **家庭网盘** - 家庭成员共享文件存储空间 - **小团队协作** - 团队内部文件共享和协作 - **企业内网盘** - 企业内部公共文件存储 - **学校/机构** - 教学资源共享平台 ## ⚠️ 重要注意事项 ### 数据迁移 ```bash # 需要手动将现有用户文件迁移到公共目录 # 原来的结构: /rootDir/user1/file1.txt # 现在的结构: /rootDir/file1.txt ``` ### 安全考虑 - **文件安全性**:所有登录用户都能访问所有文件 - **权限控制**:需要在应用层面控制用户访问权限 - **数据备份**:建议在使用前备份原始数据 ## 🔄 从原版迁移 1. **备份数据** ```bash # 备份原有文件和数据库 cp -r /your/original/files /backup/location ``` 2. **部署改造版** ```bash # 部署修改后的代码 # 使用相同的配置文件和数据库 ``` 3. **文件迁移** ```bash # 将用户目录中的文件移动到公共根目录 # 注意处理文件名冲突 ``` ## 📁 文件结构对比 ### 改造前 ``` /rootDir/ ├── user1/ │ ├── file1.txt │ └── folder1/ └── user2/ ├── file2.txt └── folder2/ ``` ### 改造后 ``` /rootDir/ ├── file1.txt ├── file2.txt ├── folder1/ └── folder2/ ``` ## 🛠️ 部署说明 ### 环境要求 - Java 21+ - MongoDB 4.4+ - Maven 3.6+ ### 🚀 快速启动 (推荐) #### 一键启动前后端 ```bash # 开发环境快速启动 ./dev-start.sh # 或完整启动 (含环境检查) ./start-full-project.sh ``` #### 手动构建和运行 ```bash # 构建项目 mvn clean package -DskipTests # 运行后端 java -jar target/clouddisk-*.jar # 启动前端 (另开终端) cd frontend/ && npm install && npm run dev ``` > 📖 详细启动说明请查看:[STARTUP_GUIDE.md](./STARTUP_GUIDE.md) ### Docker 部署 #### 🎯 方案1:从Git仓库构建部署(推荐) ```bash # 一键构建和部署 ./build-from-git.sh # 或手动操作 docker-compose -f docker-compose.git.yml up -d --build ``` #### 🎯 方案2:使用预构建镜像 ```bash # 使用提供的 docker-compose.yml docker-compose up -d ``` ### 🔗 Git仓库信息 - **仓库地址**:https://git.1080p.hk/chenpei/jmalcloud - **自动构建**:支持从Git仓库直接构建Docker镜像 - **持续集成**:修改代码后重新构建即可更新 ## 📁 项目结构 ``` jmalcloud/ ├── src/ # 🔧 后端Java源码 │ ├── main/java/ # Spring Boot主代码 │ └── test/java/ # 单元测试代码 ├── frontend/ # 🎨 前端Vue.js项目 │ ├── src/ # Vue组件和页面 │ ├── public/ # 静态资源 │ └── package.json # NPM依赖配置 ├── docker-compose*.yml # 🐳 多种Docker部署配置 ├── *.sh # 🚀 启动和构建脚本 ├── *.md # 📖 详细文档 └── pom.xml # 📦 Maven项目配置 ``` ### 🔧 启动脚本说明 | 脚本 | 用途 | 推荐场景 | |------|------|----------| | `dev-start.sh` | 快速启动前后端 | 日常开发 ⭐ | | `start-full-project.sh` | 完整启动含检查 | 首次部署 | | `stop-full-project.sh` | 停止所有服务 | 清理环境 | ## 📝 变更日志 ### v2.15.0-public-space - 改造为公共空间模式 - 移除用户文件隔离机制 - 统一文件存储路径 - 保持前端API兼容性 ## 🤝 贡献 如果你发现问题或有改进建议,欢迎提交 Issue 或 Pull Request。 ## 📄 许可 [MIT](https://github.com/jamebal/jmal-cloud-view/blob/master/LICENSE) license. Copyright (c) 2023-present jmal --- > **免责声明**: 这是基于开源项目 JmalCloud 的自定义改造版本,使用前请仔细评估安全性和适用性。原作者不对此改造版本承担责任。