网盘在线演示地址

源码地址

项目名称源码地址
丢丢网盘前端https://gitee.com/JavaerLi/ddisk-web
丢丢网盘后台https://gitee.com/JavaerLi/ddisk-file

在这里插入图片描述

前言

这是我学习JavaWeb半年来做的第一款自主开发的Web项目,从技术选型到数据库建模编码测试最后到部署到服务器。这个过程踩过很多的坑,自己动手做和看视频学习,真是不一样,光看不做会让你觉得这个东西真的很简单,没有写的必要。期间最常见的莫过于空指针异常,对象调用方法时,对象是空,这很多都是需要经验去堆积的。还有就是不同的数据库比如h2和mysql事务执行顺序是不一样的,同样的代码,换一个数据库就可能会报错,h2在事务貌似是栈结构,而mysql是队列,这只是我个人的猜测,并没有深入研究数据库的底层,为了适配多种数据库,我放弃了使用外键。还有controller接收参数问题等,前端后台都自己写,真的能发现很多问题,前后端分离和他人协作开发时,很多问题可能是你的前端,或者是你的后台小伙伴给你解决了。

功能介绍

  1. 支持秒传
  2. 支持视频音频播放、拖拽进度条、倍速播放等
  3. 支持图片预览,旋转,放大
  4. 支持多人一起上传,共享上传进度(例如a上传苍老师学习资料到50%,突然b也上传苍老师学习资料,b从51%开始上传,后面a又从52%)
  5. 安全下载机制,每一个下载操作,都是要经过权限认证的
  6. 内置springsecurity支持控制登录数,类似qq,挤人下线,保证安全性
  7. 拥有回收站,不怕误删
  8. 高效的垃圾回收机制
  9. 拒绝冗余数据,每份文件只存一份,高效利用磁盘空间

未来计划

  1. 增加在线压缩、解压缩
  2. 增加拖拽上传
  3. 增加上传文件夹
  4. 增加文件分享功能
  5. 增加远程下载
  6. 增加后台管理,可以查看设备状态和管理用户,文件等
  7. 增加webdav功能

所用技术

前端:Element UI、Vue CLI@3、Node.js、Webpack

后台:Spring Boot、Spring Data JPA、Spring Security

数据库 : MySQL、H2等关系型数据库

数据结构:递归算法,树的遍历和插入…

特别感谢

奇文社区开发的奇文网盘,本项目用的UI模板正是由奇文网盘提供。后台自主研发,和奇文网盘非同一产品,均是优秀的开源项目。
希望有同学能和我一起开发维护这个项目,如有志同道合的小伙伴,请你联系我吧!

Logo

前往低代码交流专区

更多推荐