浏览器如何异步上传多个文件部分

问题描述 投票:0回答:1

我正在设计和实现将一个大文件分成小块以便上传。

我已尝试将块大小分别为1mb,10mb,100mb,用于上传1gb,10gb文件。

我在Chrome浏览器上对其进行了测试,但未发现上述不同块大小之间的特定性能差异。

这里的快速问题。如果我选择块大小为1mb来上传10GB文件。将有1万个块要上传。 IE,Chrome或Safari执行这项繁重的任务是否有任何限制?

通常,一次将使用多少个工作线程/线程进行上传?

非常感谢!

for(let chunkIndex=0; chunkIndex< LAST_CHUNK_INDEX ;chunkIndex++) {
    SEND_CHUNK[chunkIndex] // Using axios or xhr for uploading files.
}
javascript google-chrome internet-explorer safari
1个回答
0
投票
  1. 我还没有找到有关浏览器的块数限制的任何正式文档。但是使用某些工具上载到特定位置like this时,它有时可能会受到限制。
  2. 关于工作原理,我们将每个块作为单独的请求发送。我发现按块上传文件的a sample。而且我发现the comment made by rizsi非常有用:

    进行分块上载的主要原因是服务器不需要将整个文件存储在内存中-当直接将数据流传输到文件时,这也可以在服务器端解决,第二个原因是制作大文件如果TCP流中断,则可以恢复上传。

    因此,我们应该在上一个块完成后发送每个块。如果我们一次发送所有数据块,它将立即将所有数据块泛滥到服务器,使整个事情变得毫无意义。

© www.soinside.com 2019 - 2024. All rights reserved.