• 大二毕设.3-网盘系统


    目录

    技术选型:

    功能概括:

    基本演示:

    实现讲解:


    • 技术选型:

    • 前端: 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解耦合
    • 基本演示:

    • 用户基本演示:

    • 文件&回收站&分享基本演示:

    • 实现讲解:

    • 用户模块讲解
    • 文件模块讲解
    • 其余模块由于 防止完全抄袭 不会进行公开
    • 预览:
      • 定时模块
      • 回收站模块
      • 分享模块
      • 缓存模块
      • 分布式锁模块
      • 事件流模块
      • MQ模块
  • 相关阅读:
    Metabase学习教程:入门-1
    BSV 中的零开销私人时间戳
    Vim 笔记
    git问题: git@10.18.*.*: Permission denied (publickey,password)
    根文件系统制作并启动 Linux
    SSM框架-spring中bean的依赖注入
    【解刊】3区SCI,25天录用,4天见刊!计算机网络通信领域
    现代 Android 开发的第一步Kotlin
    通过onnxruntime进行模型部署过程中的问题
    TaskWeaver使用记录
  • 原文地址:https://blog.csdn.net/weixin_59624686/article/details/133139378