1. 整体架构
网盘使用gin框架作为服务响应的处理,使用LVM管理机制(以下简称LVM)对磁盘进行管理,通过gRPC与LVM进行通信。在实际使用中,部分操作会使用异步任务而非同步任务。异步任务主要面对一些处理时间上相对较长的,将任务置于后台处理,快速响应,处理完成返回结果。用户可以不用等待任务完成而去处理其它事情。
1.2 初步了解
网盘插件有存储池和存储分区,以及异步任务等设计概念,异步任务会在稍后详细介绍,这里介绍下存储池和存储分区两个概念,有助于后面的理解
1.2.1 存储池
存储池是网盘的基本的空间容量。通过LVM将一块硬盘划分为一个有存储容量的分区,一块硬盘的容量决定该存储池的容量。
存储池是网盘的分区概念。只有在建立存储池之后,才能在该存储池中建立存储分区,划分存储分区的容量。
存储池可以理解为windows里的分卷。但windows一个硬盘可以做多个分卷,网盘插件内一个硬盘则只能做一个分卷。
1.2.2 存储分区
存储分区是作为存储池下的容量再次划分。存储分区可以自定义存储分区的大小,可以在存储分区内建立文件夹以存储文件。
存储分区在网盘里负责文件夹管理及文件的存储。用户可以浏览文件夹内的文件,亦或是在存储分区的文件夹内将文件上传/下载。