项目介绍

项目名称:Easy云盘
项目描述: 一个仿百度云盘面向C端用户的网盘项目,包括用户注册,QQ快捷登录,文件上传,分片上传,断点续传,秒传,文件在线预览,包括文本,图片,视频,音频,excel,word ,pdf 等文件在线预览,文件分享等功能。
技术选型:Vue3 + vite3 + vuex
负责内容:

  • 用户注册,登录,QQ快捷登录,发送邮箱验证码,找回密码。
  • 文件分片上传,断点续传,秒传,上传进度展示,文件预览,新建目录,文件重命名,文件移动,文件分享,删除,下载 等功能。
  • 文件分享列表,取消分享。
  • 回收站功能,还原文件,彻底删除。
  • 设置模块 1、超级管理员可以看到所有用户上传的文件,可以对文件下载,删除。 2、超级管理员可以对用户进行管理,给用户分配空间,禁用、启用用户3、超级管理员可以对系统进行设置,设置邮箱模板,设置用户注册初始化空间大小。
  • 用户通过分享链接和分享码预览下载其他人分享的文件,同时也可以将文件保存到自己的网盘。
  • 项目难点:
  • 为了实现秒传,在文件上传前需要对文件进行MD5,避免文件过大,浏览器内存溢出,采用SparkMD5对文件分片MD5,文件分片上传,使用Promise 完成多文件同时上传,文件开始上传,暂停上传。
  • 多级目录线性展示,结合路由,刷新后任保持目录层级。
  • 文件预览,根据不同的文件类型,接受不同的数据类型,包括arraybuffer,blob,json类型的数据。
  • 文件分享,用户打开链接后需要输入分享码才可以读取文件,输入后,在一个会话内状态一直保持,session会话结束后,需要再次输入分享码。

项目收获:
熟悉了第三方登录接入流程,比如QQ登录。云盘项目不是简单的增删改查,对大文件采用递归调用完成分片MD5处理,大文件分片上传,解决了实际项目开发中对大文件的上传处理。根据不同的文件类型,使用不同的插件完成文件的在线预览。比如视频的分片播放,pdf,excel,word 在线预览。通过这个项目让我对vue的相关知识点,比如数据双向绑定,组合式Api,生命周期函数,状态管理,路由,watch,父子组件,组件封装,表单校验,页面布局,css编写等有了更加深刻的认识,此项目将所学的前端知识进行了综合运用。

前端项目构建

参考文献: https://www.bilibili.com/video/BV1Qs4y1z7Km/