大二毕设.3-网盘系统

news2025/1/12 23:10:23

目录

技术选型:

功能概括:

基本演示:

实现讲解:


  • 技术选型:

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

  • 用户基本演示:

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

  • 实现讲解:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter实现地图上汇聚到一点的效果。

要求效果: 实现的效果: 代码: 选择点的界面: import dart:math;import package:flutter/material.dart; import package:get/get.dart; import package:kq_flutter_widgets/widgets/animate/mapChart/map_chart.dart; import pa…

Winserver安装Linux虚拟机执行java程序踩坑

前言: “好久没有更新文章了,最近太忙了!”一个特别朴实无华的小马哥说到。 “小马蝈蝈,那你现在更新文章了,是不是很闲啊,来帮我....” 耳畔听到一个妹子的声音。咳咳咳~~此处省略一万字,文末也…

WebGL 用鼠标控制物体旋转

目录 鼠标控制物体旋转 如何实现物体旋转 示例程序(RotateObject.js) 代码详解 示例效果 鼠标控制物体旋转 有时候,WebGL程序需要让用户通过鼠标操作三维物体。这一节来分析示例程序RotateObject,该程序允许用户通过拖动&…

数据通信——传输层TCP(超时时间选择)

引言 TCP每一次发送报文段,就会对这个报文段设置一次计时器。如果时间到了却没有收到确认报文,那么就要重传该报文。 这个之前在TCP传输的机制中提到过,这个章节就来研究一下超时时间问题。 关于加权的概念 有必要提及一下加权的概念&#x…

天地一体化指挥!平战结合的应急感知云来了

面向智慧应急数字化转型需求,天翼物联基于感知云平台创新能力,为客户提供泛协议接入、感知云应急平台、应急感知数据治理、决策处置大屏等在内的应急感知云服务,构建应急感知神经系统新型数字化底座,实现应急感知、预警、决策、处…

程序员必须掌握的算法系列之贪心算法

一:引言 在计算机科学中,贪心算法(Greedy Algorithm)是一种基于贪心策略的算法思想,它在每一步选择中都采取当前状态下最优的选择,以希望最终能够得到全局最优解。贪心算法通常可以在较短的时间内找到问题…

springcloud3 分布式事务实现逻辑思想2

一 分布式事务逻辑 1.1 CAP理论 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这3个基本需求&…

SPI在Java中的实现与应用 | 京东物流技术团队

1 SPI的概念 API API在我们日常开发工作中是比较直观可以看到的,比如在 Spring 项目中,我们通常习惯在写 service 层代码前,添加一个接口层,对于 service 的调用一般也都是基于接口操作,通过依赖注入,可以…

【深度学习实验】前馈神经网络(六):自动求导

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 标量求导 2. 矩阵求导 3. 计算图 一、实验介绍 PyTorch提供了自动求导机制,它是PyTorch的核心功能之一,用于计算梯度并进行反向传播。自动求…

C++流插入和流提取的重载!

C作为C语言的衍生,其弥补了C语言中的很多不足,也对C语言进行了一定的优化!今日就来讲解一下C中输入/出流相关的知识!以及对输入/出的重载!,希望读完本篇文章,能让读者们对C中输入/出流有更深一步…

Java之IO概述以及

1.1 什么是IO 生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrls ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键…

散列(哈希)查找的定义,常见的散列函数设计以及处理哈希冲突方法

1.散列表 1.散列表的定义 散列表(Hash Table),又称哈希表。 是一种数据结构,特点是:数据元素的关键字与其存储地址直接相关。 特点: 若不同的关键字通过散列函数映射到同一个值,则称它们为“同义词”。通过散列函数确定的位置…

Maven 设置环境变量(Windows、Linux)

文章目录 Windows 配置 Maven 环境变量Linux 配置 Maven 环境变量 如果想在任意路径下都能通过 mvn 命令运行 Maven 程序,就需要将 Maven 程序路径设置到环境变量中, 否则使用 mvn 命令时每次都要加上 Maven 程序的全路径 核心就一句话,把 M…

坚鹏:中国邮政储蓄银行金融科技前沿技术发展与应用场景第4期

中国邮政储蓄银行金融科技前沿技术发展与应用场景第4期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…

学习记忆——英语篇——右脑记忆单词

文章目录 英语字母形象起源右脑记忆单词的原则四大步骤第一步:摄取信息第二步:处理信息第三步:储存信息第四步:提取信息 训练例子字母形象训练 右脑记忆单词5大方法字源法编码法字母编码法字母组合编码法 拼音法全拼法拼音组合 熟…

springcloud3 分布式事务解决方案seata之XA模式4

一 seata的模式 1.1 seata的几种模式比较 Seata基于上述架构提供了四种不同的分布式事务解决方案: XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入 TCC模式:最终一致的分阶段事务模式,有…

操作系统:中断和异常

1.中断的作用 CPU上会运行两种程序,一种是操作系统内核程序(是整个系统的管理者),一种是应用程序。 1.中断的特点 在合适的情况下,操作系统内核会把CPU的使用权主动让给应用程序。“中断”是让操作系统内核夺回CPu使…

java智慧园区系统源码 智慧园区小程序源码

java智慧园区系统源码 智慧园区小程序源码 技术框架: 核心框架:Spring Boot 2.4.0 安全框架:JwtPermission 3.1.1 前端:Ant Design Vue 1.6.2 持久层框架:MyBatis-Plus 3.4.1 关系型数据库: Mysql 8.0.22 数据库…

【开发篇】一、热部署

文章目录 1、手工启动热部署2、自动启动热部署3、热部署范围配置4、关闭热部署功能 1、手工启动热部署 日常开发与调试&#xff0c;改几行代码想看效果就得手动点重启&#xff0c;很繁琐&#xff0c;接下来考虑启动热部署。首先引入springboot开发者工具&#xff1a; <dep…

找视频背景音乐素材,就上这6个网站。

找背景音乐、BGM、音效素材&#xff0c;就上这6个网站&#xff0c;国内外都有&#xff0c;免费下载&#xff0c;还可以商用&#xff0c;建议收藏起来~ 1、菜鸟图库 https://www.sucai999.com/audio.html?vNTYwNDUx 菜鸟图库是一个综合性素材网站&#xff0c;站内涵盖设计、图…