jmalcloud/README.md
lanmus d5f11e43bd 🚀 完善前后端启动脚本和文档
✨ 新增启动脚本:
- start-full-project.sh: 完整的前后端启动脚本,含环境检查
- dev-start.sh: 开发环境快速启动脚本
- stop-full-project.sh: 停止所有服务的脚本

📖 新增文档:
- STARTUP_GUIDE.md: 详细的启动指南和故障排除
- 更新 README.md: 添加项目结构说明和启动脚本介绍

🔧 功能特点:
- ✅ 自动环境检查(Java、Node.js、MongoDB)
- ✅ 智能进程管理和端口清理
- ✅ 详细的启动日志和状态检查
- ✅ 交互式和静默启动模式
- ✅ 完整的故障排除指南

🎯 适配新项目结构:
- 后端:项目根目录 (Spring Boot)
- 前端:frontend/ 子目录 (Vue.js)
- 一键启动完整的前后端开发环境

📋 三种启动方式:
1. dev-start.sh - 开发快速启动 ⭐ 推荐
2. start-full-project.sh - 完整启动检查
3. 手动分别启动 - 调试使用

现在开发者只需一个命令即可启动完整的前后端开发环境!
2025-08-24 12:19:47 +08:00

5.4 KiB
Raw Permalink Blame History

JmalCloud 公共空间版 - 个人网盘服务端

基于 JmalCloud 改造的公共空间版本

🚀 项目简介

这是一个基于原版 JmalCloud 改造的公共空间版本,将原来的用户独立文件空间模式改为所有用户共享同一文件空间的模式。

📋 主要变更

  • ✅ 公共文件空间:所有用户登录后看到相同的文件列表
  • ✅ 统一存储:文件存储在统一的公共目录中,不再按用户分离
  • ✅ 共享操作:任何用户都可以上传、下载、删除、重命名所有文件
  • ✅ 保留认证:用户登录验证和基本权限控制仍然有效
  • ✅ 元数据保留:文件的创建者信息仍保存在数据库中
  • ✅ 前端集成:前端Vue.js项目已集成到仓库中 (frontend/ 目录)
  • ✅ 一键启动:提供完整的前后端启动脚本

🔧 核心改造内容

后端修改

  1. 文件存储路径统一化 - 移除用户名路径组件
  2. 数据库查询去用户化 - 移除 userId 过滤条件
  3. 文件操作公共化 - 所有文件操作适配公共空间
  4. 用户目录管理适配 - 不再创建用户专属目录

前端集成

  • ✅ 完整集成 - 前端Vue.js项目已集成到仓库
  • ✅ API兼容 - 保持原有接口参数,仅后端逻辑调整
  • ✅ 一站式开发 - 一个仓库包含完整前后端代码

🎯 适用场景

  • 家庭网盘 - 家庭成员共享文件存储空间
  • 小团队协作 - 团队内部文件共享和协作
  • 企业内网盘 - 企业内部公共文件存储
  • 学校/机构 - 教学资源共享平台

⚠️ 重要注意事项

数据迁移

# 需要手动将现有用户文件迁移到公共目录
# 原来的结构: /rootDir/user1/file1.txt
# 现在的结构: /rootDir/file1.txt

安全考虑

  • 文件安全性:所有登录用户都能访问所有文件
  • 权限控制:需要在应用层面控制用户访问权限
  • 数据备份:建议在使用前备份原始数据

🔄 从原版迁移

  1. 备份数据

    # 备份原有文件和数据库
    cp -r /your/original/files /backup/location
    
  2. 部署改造版

    # 部署修改后的代码
    # 使用相同的配置文件和数据库
    
  3. 文件迁移

    # 将用户目录中的文件移动到公共根目录
    # 注意处理文件名冲突
    

📁 文件结构对比

改造前

/rootDir/
├── user1/
│   ├── file1.txt
│   └── folder1/
└── user2/
    ├── file2.txt
    └── folder2/

改造后

/rootDir/
├── file1.txt
├── file2.txt
├── folder1/
└── folder2/

🛠️ 部署说明

环境要求

  • Java 21+
  • MongoDB 4.4+
  • Maven 3.6+

🚀 快速启动 (推荐)

一键启动前后端

# 开发环境快速启动
./dev-start.sh

# 或完整启动 (含环境检查)
./start-full-project.sh

手动构建和运行

# 构建项目
mvn clean package -DskipTests

# 运行后端
java -jar target/clouddisk-*.jar

# 启动前端 (另开终端)
cd frontend/ && npm install && npm run dev

📖 详细启动说明请查看:STARTUP_GUIDE.md

Docker 部署

🎯 方案1:从Git仓库构建部署(推荐)

# 一键构建和部署
./build-from-git.sh

# 或手动操作
docker-compose -f docker-compose.git.yml up -d --build

🎯 方案2:使用预构建镜像

# 使用提供的 docker-compose.yml
docker-compose up -d

🔗 Git仓库信息

📁 项目结构

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 license.

Copyright (c) 2023-present jmal


免责声明: 这是基于开源项目 JmalCloud 的自定义改造版本,使用前请仔细评估安全性和适用性。原作者不对此改造版本承担责任。