当前位置: 首页 > 网络应用技术

大型文件处理(上传,下载)思维

时间:2023-03-08 22:59:30 网络应用技术

  它一直是最前沿的心脏病。如何控制文件的大小,无法上传文件,文件下载时间太长,TCP直接断开连接???

  为了促进每个人的有意义的学习,让我们将渲染图放在这里。

  文件上传已实现,碎片上传,上传,上传,文件合并等。

  为了促进测试,我上传了一个1G的大文件供下载。前端用于保存文件。有关详细信息

  该项目的地址是:https://github.com/cll123456/deal-big-file需求

  请阅读以下问题以下文章

  为了计算文件哈希,主要有以下内容:。在这两种方法中,您可以将其与浏览器一起使用以实现它来实现它。

  接下来,让我们计算文件的哈希,该库需要使用计算文件的哈希,

  完整的计算文件哈希

  当文件很小时,完整的计算文件哈希非常快,但是当文件大时,计算文件的哈希将非常慢并影响主过程???

  采样计算文件哈希采样是要继续的文件的一部分。原则如下:

  该设计是否发现它非常灵活?

  基于这两个,他们还可以单独使用Web-Worker和requestIdleCallback来实现它。

  在这里,我将配置我的计算机。将公司的计算机配置与具有8G内存的旧机器进行了比较。计算结果()哈希的结果如下:

  结果很明显,无论您如何获得它,它都比样本慢。

  您可能会说,不是在等待积分的文件碎片。实际上,您还可以根据网络速度实时调整碎片的大小!

  ???注意力 !!!如果像这样上传的文件,如果您断开连接的一半,则无法续订(每个时刻的网络速度都不同),除非每个上传都会带来块Sizesave

  控制HTTP的请求可以改变想法,是否可以控制异步任务?

  悬架请求实际上非常简单。本机中有一种方法。在发送请求时,在发送请求时,我们可以使用数组安装他,然后您可以亲自调用流产方法。

  封装请求时,最好要求一个:

  有请求数组后,您要暂时直接遍历请求数组,调用该方法

  还原上传是确定已经存在的片段,而存在的片段不需要上传,也不存在继续上传。因此,我们想要的界面,文件的哈希,文件名,以及它是多少由文件上传。

  请注意,在此处,您需要在验证剪辑的最终文件中删除剪辑的最终文件,以防止最后几个文件不完整上传。

  合并文件是充分了解的,即合并了所有零件,但是有一个值得关注的地方,我们无法阅读内存中的所有文件,而是使用flow方法在阅读时合并和读取。编写文件。。在编写文件时,您需要确保订单,否则文件可能会损坏。在此部分中会有很多代码,感兴趣的学生可以看到源代码

  对于文件下载,后端实际上非常简单,也就是说,返回流到达旅行,如下:

  对于前端,我们需要使用一个库,也就是说,该库调用API来实现浏览器中流式文件的方式。然后,它非常易于使用???

  原始:https://juejin.cn/post/7100086067264487432