断点续传
什么是断点续传?
就是下载文件时,不必重头开始下载,而是从指定的位置继续下载,这样的功能就叫做断点续传。
断点续传的理解可以分为两部分:
一部分是断点,一部分是续传。断点的由来是在下载过程中,将一个下载文件分成了多个部分,同时进行多个部分一起的下载,当某个时间点,任务被暂停了,此时下载暂停的位置就是断点了。续传就是当一个未完成的下载任务再次开始时,会从上次的断点继续传送。
如何进行并行上传?
实现batchPrimise,或者Promise.all,将多个任务并行执行。
切片上传失败怎么办?
切片上传失败对流程无影响,刷新页面的情况下,会重新上传失败的切片,或者不刷新页面的时候,前端暂时记录失败的切片,等队列里任务执行完了,再把失败的列表执行一遍。
上传过程中刷新页面怎么办?
初始化页面的时候,从后端接口拿到已上传的切片,下次上传时,跳过这些已上传的切片。
记录成功上传的切片,下次上传时,绕过已上传的切片。
切片什么时候按数量切,什么时候按大小切?
文件小的时候按数量切,因为这样能最大程度利用网络优势。
文件大的时候按大小切,因为这样确保每个切片大小合理且适应变化较大的文件大小。
如何结合 Web Worker 处理大文件上传?
点击上传文件后,使用Web Worker开启一个线程,将文件进行切片和hash。
如何实现秒传?
- 判断文件是否已经存在,如果存在,则直接返回。
- 判断文件是否在上传中,如果正在上传,则等待上传完成。