Skip to content

断点续传

什么是断点续传?

就是下载文件时,不必重头开始下载,而是从指定的位置继续下载,这样的功能就叫做断点续传。

断点续传的理解可以分为两部分:

一部分是断点,一部分是续传。断点的由来是在下载过程中,将一个下载文件分成了多个部分,同时进行多个部分一起的下载,当某个时间点,任务被暂停了,此时下载暂停的位置就是断点了。续传就是当一个未完成的下载任务再次开始时,会从上次的断点继续传送。

如何进行并行上传?

实现batchPrimise,或者Promise.all,将多个任务并行执行。

切片上传失败怎么办?

切片上传失败对流程无影响,刷新页面的情况下,会重新上传失败的切片,或者不刷新页面的时候,前端暂时记录失败的切片,等队列里任务执行完了,再把失败的列表执行一遍。

上传过程中刷新页面怎么办?

初始化页面的时候,从后端接口拿到已上传的切片,下次上传时,跳过这些已上传的切片。

记录成功上传的切片,下次上传时,绕过已上传的切片。

切片什么时候按数量切,什么时候按大小切?

文件小的时候按数量切,因为这样能最大程度利用网络优势。

文件大的时候按大小切,因为这样确保每个切片大小合理且适应变化较大的文件大小。

如何结合 Web Worker 处理大文件上传?

点击上传文件后,使用Web Worker开启一个线程,将文件进行切片和hash。

如何实现秒传?

  1. 判断文件是否已经存在,如果存在,则直接返回。
  2. 判断文件是否在上传中,如果正在上传,则等待上传完成。

Released under the MIT License.