✨ 新增功能: - 新增 Dockerfile.git 支持从Git仓库构建 - 新增 docker-compose.git.yml 配置文件 - 新增 build-from-git.sh 一键部署脚本 - 更新 docker-entrypoint.sh 适配新构建方式 - 更新 README.md 添加Git构建说明 🔧 配置更新: - 支持从 https://git.1080p.hk/chenpei/jmalcloud 自动构建 - 优化构建流程和容器启动脚本 - 添加完整的Docker健康检查 📖 文档更新: - 添加Git仓库构建部署文档 - 提供一键部署解决方案
150 lines
3.8 KiB
Markdown
150 lines
3.8 KiB
Markdown
# JmalCloud 公共空间版 - 个人网盘服务端
|
||
|
||
> 基于 [JmalCloud](https://github.com/jamebal/jmal-cloud-view) 改造的公共空间版本
|
||
|
||
## 🚀 项目简介
|
||
|
||
这是一个基于原版 JmalCloud 改造的**公共空间版本**,将原来的用户独立文件空间模式改为**所有用户共享同一文件空间**的模式。
|
||
|
||
### 📋 主要变更
|
||
|
||
- ✅ **公共文件空间**:所有用户登录后看到相同的文件列表
|
||
- ✅ **统一存储**:文件存储在统一的公共目录中,不再按用户分离
|
||
- ✅ **共享操作**:任何用户都可以上传、下载、删除、重命名所有文件
|
||
- ✅ **保留认证**:用户登录验证和基本权限控制仍然有效
|
||
- ✅ **元数据保留**:文件的创建者信息仍保存在数据库中
|
||
|
||
## 🔧 核心改造内容
|
||
|
||
### 后端修改
|
||
1. **文件存储路径统一化** - 移除用户名路径组件
|
||
2. **数据库查询去用户化** - 移除 userId 过滤条件
|
||
3. **文件操作公共化** - 所有文件操作适配公共空间
|
||
4. **用户目录管理适配** - 不再创建用户专属目录
|
||
|
||
### 前端兼容性
|
||
- ✅ **无需修改** - 前端代码完全兼容,无需任何变更
|
||
- ✅ **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
|
||
# 构建项目
|
||
mvn clean package -DskipTests
|
||
|
||
# 运行
|
||
java -jar target/clouddisk-*.jar
|
||
```
|
||
|
||
### 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镜像
|
||
- **持续集成**:修改代码后重新构建即可更新
|
||
|
||
## 📝 变更日志
|
||
|
||
### 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 的自定义改造版本,使用前请仔细评估安全性和适用性。原作者不对此改造版本承担责任。 |