jmalcloud/README.md
chenpei c26105b684 初始提交:JmalCloud公共空间版改造完成
- 改造为公共空间模式,所有用户共享文件
- 移除用户文件隔离机制
- 保持前端API兼容性
- 更新配置文件和文档
- 创建完整启动脚本工具链
2025-08-24 11:16:01 +08:00

3.4 KiB

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

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

🚀 项目简介

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

📋 主要变更

  • ✅ 公共文件空间:所有用户登录后看到相同的文件列表
  • ✅ 统一存储:文件存储在统一的公共目录中,不再按用户分离
  • ✅ 共享操作:任何用户都可以上传、下载、删除、重命名所有文件
  • ✅ 保留认证:用户登录验证和基本权限控制仍然有效
  • ✅ 元数据保留:文件的创建者信息仍保存在数据库中

🔧 核心改造内容

后端修改

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

前端兼容性

  • ✅ 无需修改 - 前端代码完全兼容,无需任何变更
  • ✅ 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+

构建和运行

# 构建项目
mvn clean package -DskipTests

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

Docker 部署

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

📝 变更日志

v2.15.0-public-space

  • 改造为公共空间模式
  • 移除用户文件隔离机制
  • 统一文件存储路径
  • 保持前端API兼容性

🤝 贡献

如果你发现问题或有改进建议,欢迎提交 Issue 或 Pull Request。

📄 许可

MIT license.

Copyright (c) 2023-present jmal


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