✨ 新增启动脚本: - 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. 手动分别启动 - 调试使用 现在开发者只需一个命令即可启动完整的前后端开发环境!
194 lines
5.4 KiB
Markdown
194 lines
5.4 KiB
Markdown
# 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 的自定义改造版本,使用前请仔细评估安全性和适用性。原作者不对此改造版本承担责任。 |