今天教大家如何设计一个网盘(云盘)系统系统 , 基于目前主流的技术:前端vue,后端springboot。
同时还带来的项目的部署教程。
视频演示
https://www.bilibili.com/video/BV15G5uzTE3e/?vd_source=ac19a0...
图片演示
一. 系统概述
用过百度网盘,夸克等网盘的童鞋们应该都清楚网盘需要哪些功能,今天就教大家用java springboot来实现网盘。首先我们看下我们系统的核心功能:
1. 支持秒传文件。
2. 支持断点续传。
3.支持大文件快速上传(文件分块多线程上传)。
4.支持分享,提取文件。
5. 文件系统的管理。
6.登录注册。
7.用户空间扩容。
二. 核心功能实现思想
秒传文件
妙传文件就是某个用户上传一个文件后,其它用户上传同样的文件都是瞬间完成。 核心思想就是将每个文件的MD5值保存下来,上传时比对MD5值,存在就秒传成功。
大文件快速上传
用户上传文件首先将文件切分成1MB大小的块,前端首先分配好这些块文件,然后比如批量同时10个一起调用后台上传快文件接口。后端对每个块文件进行接收和存储。由于是同时,后端用了多线程去存储,最大化利用了cpu效率。
断点续传
由于文件是分块上传与存储的,我们上传过程中即使断了网也不用怕,因为上传过的文件快已经实实在在的保存到了服务器磁盘。下次上传同样的文件时,只需要查找最后上传到那一块文件,然后继续上传后面的块文件就可以了。
三. 技术栈概述
后端技术栈:JDK8 + springboot + mysql8
前端技术栈:vue + Axios 等
四. 项目部署教程
前端部署安装node , 版本:v22.15.0 , 安装完成后。 进入到项目 wxhadluo-drive-web 目录下, 右键,运行cmd,运行下面命令:
npm run serve
由于我已经跟你npm install好了,所以你无需执行,直接run就可以了!!运行项目
到此前端项目部署完成。
执行sql
自己安装好数据库,注意,必须啊时mysql8 ,否则代码运行会出错。新建一个 wxhadluo-drive 数据库, 然后执行 “wxhadluo-drive.sql”
启动后端项目
然后部署后端 , 打开idea, 导入maven工程 wxhadluo-drive-server。打开resources目录, 修改 application.yml 配置文件,主要修改下面几个信息:
然后启动 main 启动类 : Application.class
五. 访问项目
用户: hadluo / 123456
可以自己注册用户。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。