实现个人文件网盘-功能设计篇(调整)

505 阅读3分钟

前言

手机文件过多,云存储又太贵了。自己整个网盘存文件。查看了许多开源网盘,多数都是使用阿里云存储(也是要钱的),另外源码也不是我擅长的语言,后续有其他需求不好加,还是自己整个吧。正好自己家有个废弃的笔记本,利用下班的空闲时间简单的整个网盘服务。 个人网盘1.0.png

需求分析(需要啥)

  • 用户登录注册:需要个用户登录的功能,注册暂时不开放吧,只是给自己用的。
  • 用户权限校验:用户可分为三个等级超级管理员(上传/查看等所有文件的操作) 普通管理员(上传/查看等自己文件等操作) 普通用户(只能查看公开文件)
  • 用户的增删改查
  • 上传各种文件:上传文件是最基础的功能,要支持手机端(浏览器)和PC端上传
  • 上传后在线查看:上传文件后我们应该能够查询文件上传的时间文件的基本信息
    • 文件分类查看:可以根据文件的不同类别过滤文件
    • 文件的快速检索:可以根据关键字查询文件
  • 文件删除还原:上传文件的账号能够删除其上传过的文件
  • 文件下载:上传文件的账号能够下载其上传过的文件

架构设计(服务端 前端 数据库)

个人网盘中主要包括以下几大部分:

  • 源文件存储
    • 实际文件存储在服务器固定路径下
    • 文件的相关信息和路径存储在mongodb数据库中,方便管理和查看
  • 前端可视化
    • vue3+antd来实现文件的展示和上传
  • 后台服务(文件信息以及权限管理)
    • koa+typescript作为后台服务
    • fastq用来实现消息队列(控制并发任务)
  • minio服务(用来存储文件)
    • docker部署minio服务

数据库设计-数据表

  • 用户数据表:主要需要包含以下用户字段信息账号 密码 角色 创建时间等

  • 文件数据表:主要需要包含以下文件信息字段文件名 文件路径 文件类型 文件大小 文件的上传用户

服务端(功能的接口抽象)-接口

  • 文件相关接口
    • 查询文件:根据目录查询文件
    • 上传文件:上传文件到所在目录
    • 文件夹新建:在目录下新建文件夹
    • 文件预览(图片、文本):前端根据文件路径和文件名称获取文件数据
  • 用户相关接口
    • 用户登录/登出
    • 新用户创建
    • 用户列表查询
    • 用户信息查询

前端-UI展示

  • 登录:一个简单的用户登录页面
  • 文件列表:显示文件的基本信息,图片需要显示缩略图。
  • 用户管理:显示用户列表,管理员账号能够增删改查。

总结

本文主要介绍了项目开发前的相关设计,在开发过程会根据实际问题进行调整实现。此时的设计只是为了有个大概的开发方向。