首页 > 其他分享 >大文件断点续传、快传秒传实现方案

大文件断点续传、快传秒传实现方案

时间:2023-09-22 20:22:32浏览次数:34  
标签:断点续传 快传 文件 传输 分片 上传 服务端 MD5

前言
为什么视频、音频、大型文档等大文件不能也直接上传吗,简单又方便?

遇到手动暂停、网络中断、网络不稳定或者服务端响应超时,当你终于半天到99%,网络突然断开喜提从0%再来一次

再者一次服务接受如此大的数据传输,不说服务器肯同意接收,即使配置同意接受这常常会使服务器出现响应超时或者陷入阻塞。为了解决这些问题,支持断点续传就变得非常必要了

快传、秒传⭐

文件块的上传时计算MD5值,根据MD5去查数据库文件块表,如果存在直接带着查到的记录返回上传成功!!

至于整个大文件是否需要计算MD5来比对数据库文件表,这取决于实际需求来决定。在某些特定场景下,可能需要验证整个大文件的完整性,或者需要将大文件的 MD5 值保存在后端进行后续比对等操作,在这种情况下,就需要计算整个大文件的 MD5 值

(快传、秒传广泛应用于网盘云存储、多平台同步、文件分享和传递、在线备份的场景)

断点续传⭐⭐

将大文件是数据分割为多个相同大小的小片,每个分片带着自己的序号和MD5值独立上传。如果发生事件导致传输中断,下一次传输时重新传输即可,已传输过的分片会根据MD5直接返回传输成功!!

(相同分片大小是为了服务端能够找到该分片在文件写入的起始位置,但是最后一个分片的大小可以小于等于分片大小)

上传流程
这里引入一张较为完整的流程图

 

细节思路
MD5如何计算

标签:断点续传,快传,文件,传输,分片,上传,服务端,MD5
From: https://www.cnblogs.com/songsu/p/17723281.html

相关文章

  • C# 获取文件的类型(不是后缀)
    最近在做一个文件映射功能,发现使用FileInfo只能获取到文件的后缀,并没有具体的类型描述 可以以下方式获取usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Windows;namespaceGetChineseExtension{///<summary>///MainWindow.xaml的交互逻......
  • Linux系统文件管理读书笔记
        在我初学Linux系统的过程中,我学到了一些基础知识,包括了解Linux系统的目录结构、掌握处理文件的基本命令,以及掌握vim编辑器的使用。这些知识对于理解和使用Linux系统非常重要,下面是我学到的一些关键点:Linux系统目录结构:Linux系统的目录结构是层级化的,它包括了许多不同......
  • WTM(基于Blazor)访问共享文件夹
    有个需求,需要访问内网网络共享文件夹中的文件,有域控限制。一开始直接在本地映射一个网络驱动器,然后像本地磁盘一样访问共享文件夹里的文件,比如:Y:\。然后直接在程序中访问共享文件夹中的文件,如下代码:DirectoryInfodirectoryInfo=newDirectoryInfo(@"\\10.10.65.14\文件夹"......
  • 简单的DVWA文件包含
    1.LOW难度,没有难度,直接就是文件包含了。主要是理清思路,为什么会感觉这里有文件包含,这里有一个page参数,当我们切换页面时变得是他的参数,而且是xxx.php那么大概率就可以认为是用一个函数把后面这个xxx.php文件包含读了进去。在另一个文件夹下构造一个phpinfo文件<?phpphpinfo?>......
  • linux命令创建文件
    Linux命令创建文件 在Linux系统中,有多种命令可以用来创建文件。下面将介绍几个常用的方法。1.使用touch命令创建文件:touch文件名该命令会创建一个空文件,如果文件已存在,则会更新文件的访问和修改时间。2.使用echo命令创建文件:echo"内容">文件名该命令会将指定的内......
  • 如何实现大文件断点续传、秒传
    大家先来了解一下几个概念:「文件分块」:将大文件拆分成小文件,将小文件上传\下载,最后再将小文件组装成大文件;「断点续传」:在文件分块的基础上,将每个小文件采用单独的线程进行上传\下载,如果碰到网络故障,可以从已经上传\下载的部分开始继续上传\下载未完成的部分,而没有必要从头开始......
  • 修改文件报错
    问题没有权限在此位置中保存文件解决本地安全策略->本地策略->安全选项->用户管理控制(如图)->禁用后重启(希望不要留下坑...)......
  • ABAP-知识文件下载
    AES加密解密类https://files.cnblogs.com/files/blogs/720530/AES-master.zip?t=1661221651&download=true接口日志程序https://files.cnblogs.com/files/blogs/720530/ZABAP_FM_LOGGER_20220712_235637.zip?t=1661221659&download=truecodesoft打印插件https://files......
  • 文件上传
    beforeUploadFile(file){    constformData=newFormData();    formData.append("files",file);    letparams={      data:formData    }    uploadFile(params).then(res=>{      if(r......
  • 关于文件下载的封装
    importaxiosfrom'axios'constisIE=()=>navigator.userAgent.toLowerCase().indexOf('trident')>-1; //判断是否为IE浏览器//文件下载exportasyncfunctiondownLoad(params){  //returnrequest('/ability/api/rs/gw/file/'......