目录
技术选型:
功能概括:
基本演示:
实现讲解:
-
技术选型:
- 前端: 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解耦合
-
基本演示:
- 用户基本演示:
- 文件&回收站&分享基本演示:
-
实现讲解: