Skip to content

lll-hhh/Enterprise_File_Network_Disk

Repository files navigation

网络文件系统 (NFS) - Network File System

一个现代化的企业级网络文件系统,支持团队协作、文件共享和权限管理。

功能特性

核心功能

  • 📁 文件管理: 完整的文件和文件夹管理(上传、下载、重命名、移动、删除)
  • 👥 团队协作: 创建团队、管理成员、角色权限控制
  • 🔗 文件共享: 支持文件共享到团队,团队成员可访问
  • 🔐 权限管理: 基于角色的访问控制(Owner、Admin、Member)
  • 📊 存储统计: 实时存储空间使用统计
  • 🗑️ 回收站: 删除的文件可恢复
  • 📝 审计日志: 完整的操作日志记录

技术特性

  • 🚀 高性能: MinIO对象存储 + PostgreSQL数据库
  • 🔒 安全性: JWT认证、密码加密、HTTPS支持
  • 📱 响应式: 支持桌面和移动端访问
  • 🎨 现代UI: Material-UI设计,流畅的用户体验
  • 🐳 容器化: Docker部署,易于扩展

技术栈

后端

  • 框架: FastAPI (Python 3.12)
  • 数据库: PostgreSQL 15
  • 对象存储: MinIO
  • 缓存: Redis
  • 认证: JWT
  • ORM: SQLAlchemy
  • 进程管理: Supervisor

前端

  • 框架: React 18 + TypeScript
  • UI库: Material-UI (MUI)
  • 构建工具: Vite
  • 状态管理: React Hooks
  • HTTP客户端: Axios

快速开始

前置要求

  • Docker & Docker Compose
  • Node.js 18+ (用于前端开发)
  • Python 3.12+ (用于后端开发)

使用Docker部署(推荐)

  1. 克隆仓库
git clone git@github.com:lll-hhh/-.git
cd newkeshe
  1. 启动服务
docker-compose up -d
  1. 访问应用

本地开发

后端开发

cd server
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python -m gateway.app

前端开发

cd client
npm install
npm run dev

测试账号

系统预置了5个测试用户和3个团队:

用户 邮箱 密码 角色
Alice alice@example.com Alice123! 管理员
Bob bob@example.com Bob123! 开发者
Charlie charlie@example.com Charlie123! 设计师
Diana diana@example.com Diana123! 测试员
Eve eve@example.com Eve123! 产品经理

预置团队

  1. 技术开发团队 - Alice(Owner), Bob(Admin), Charlie(Member)
  2. 产品设计团队 - Charlie(Owner), Diana(Admin)
  3. 测试团队 - Diana(Owner), Eve(Member)

项目结构

newkeshe/
├── client/                 # 前端代码
│   ├── src/
│   │   ├── components/    # React组件
│   │   ├── pages/         # 页面组件
│   │   ├── services/      # API服务
│   │   └── types/         # TypeScript类型
│   └── package.json
├── server/                # 后端代码
│   ├── gateway/          # API网关
│   ├── services/         # 微服务
│   │   ├── auth/        # 认证服务
│   │   ├── meta/        # 元数据服务
│   │   ├── storage/     # 存储服务
│   │   ├── team/        # 团队服务
│   │   └── share/       # 分享服务
│   ├── common/          # 公共模块
│   └── migrations/      # 数据库迁移
├── docker-compose.yml    # Docker编排文件
└── README.md

API文档

启动服务后访问:

主要API端点

认证

  • POST /auth/register - 用户注册
  • POST /users/login - 用户登录
  • GET /users/me - 获取当前用户信息

文件管理

  • GET /files/root - 获取根目录文件列表
  • POST /files/directories - 创建文件夹
  • POST /files/upload/init - 初始化文件上传
  • PUT /files/{node_id}/move - 移动文件
  • DELETE /files/{node_id} - 删除文件

团队管理

  • GET /teams/ - 获取我的团队列表
  • POST /teams/ - 创建团队
  • GET /teams/{team_id} - 获取团队详情
  • GET /teams/{team_id}/files - 获取团队共享文件
  • POST /teams/{team_id}/members - 添加团队成员

文件共享

  • POST /files/{node_id}/share-to-team - 共享文件到团队
  • DELETE /files/{node_id}/share-from-team - 取消团队共享

配置说明

环境变量

创建 .env 文件配置以下变量:

# 数据库
POSTGRES_USER=nfs_user
POSTGRES_PASSWORD=nfs_password
POSTGRES_DB=nfs_db

# MinIO
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin123

# Redis
REDIS_PASSWORD=redis_password

# JWT
JWT_SECRET=your-secret-key-change-in-production

开发指南

后端开发

  1. 遵循PEP 8代码规范
  2. 使用类型提示
  3. 编写单元测试
  4. 记录审计日志

前端开发

  1. 遵循React Hooks最佳实践
  2. 使用TypeScript严格模式
  3. 组件化开发
  4. 响应式设计

部署

生产环境部署

参考以下文档:

贡献

欢迎提交Issue和Pull Request!

许可证

MIT License

联系方式

如有问题,请提交Issue或联系维护者。


注意: 这是一个课程设计项目,请勿用于生产环境。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors