目录
技术选型:
功能概括:
基本演示:
实现讲解:
-
技术选型:
- 前端: Vue3 + Element Plus
- 后端: SpringBoot + Mybatis-Plus + MySQL + Redis + Caffeine + FastDFS/OSS + SpringCloud Stream + RocketMQ + Zookeeper
-
功能概括:
-
用户模块
-
用户注册
- 接口幂等性
- 全局唯一的用户名称
-
用户登录
- 使用缓存实现单机登录
- 使用jwt token实现时效性以及分布式的问题
- 用户登出
-
用户忘记密码
- 校验用户名称
- 校验用户密保问题的答案
- 修改用户密码
-
用户在线修改密码
- 校验旧密码
- 修改密码
- 查询用户的基本信息
-
用户注册
-
文件模块
-
文件列表查询
- 聚簇索引和非聚簇索引
- 回表查询
- 最左前缀原则
- 覆盖索引
- 创建文件夹
- 文件重命名
-
文件删除
- 文件删除事件
- 文件秒传
- 抽象文件存储引擎
-
单文件上传
- sendfile零拷贝
-
分片上传
- 上传文件分片
- 查询已上传的分片列表
- 文件分片合并
-
单文件下载
- sendfile零拷贝
-
单文件预览
- sendfile零拷贝
-
查询文件夹树
- Map代替递归操作
- 文件转移
- 文件复制
-
文件搜索
- 半模糊匹配查询
- 文件搜索事件
- 查询用户的搜索历史
- 查询面包屑导航
- 对接FastDFS
-
对接OSS
- 分片上传事件
-
文件列表查询
-
回收站模块
-
查询回收站列表
- 覆盖索引优化查询效率
-
还原回收站文件
- 权限校验
- 文件名称冲突检测
- 后续还原事件发布
-
彻底删除回收站文件
- 递归查询所有子文件
- 发布文件彻底删除事件
-
废弃文件清理器
- 业务解耦,增加程序的健壮性
-
查询回收站列表
-
分享模块
- 创建分享链接
- 查询分享链接列表
-
批量取消分享
- 权限校验
- 执行动作
- 查询分享详情
-
校验分享码
- 生成校验通过token
-
统一拦截需要校验分享码的接口
- 面向切面编程
-
获取下一级的文件列表
- 利用覆盖索引来优化查询效率
-
保存至我的网盘
- 底层使用文件复制的功能实现
-
分享文件下载
- 利用senfile零拷贝技术优化传输速率
-
完善监听机制
- 文件删除刷新分享状态
- 文件还原刷新分享状态
-
优化所有监听器
- 使用Spring的异步机制
-
缓存模块
- 本地缓存-caffeine
- 外部缓存-Redis
- 布隆过滤器
-
分布式锁
- Redis
- ZooKeeper
- 事件流Stream集成RocketMQ解耦合
-
基本演示:
-
用户基本演示:
-
文件&回收站&分享基本演示:
文章来源:https://uudwc.com/A/Evken
文章来源地址https://uudwc.com/A/Evken
-
实现讲解: