缓冲客户端文件下载

时间:2018-06-21 19:39:53

标签: javascript file download buffer blob

我有一个文件,该文件在服务器端分为多个部分。完整的文件非常大,它的大小可能达到10 GB或更多(这是首先将其拆分的原因)。

文件具有特定格式,必须先在客户端进行处理,然后才能下载。

现在,我知道我可以下载到Blob到客户端,进行处理,然后使用以下方法从那里下载BlobJavaScript blob filename without link

这里的问题是,我需要从客户端的所有文件部分构造一个巨大的blob,这是我不想要的,因为它可能很快超过RAM限制。

我想分别下载文件的每个部分,然后对其进行处理并下载“部分” blob。这意味着我需要开始下载,然后逐个添加blob,直到下载完成。

是否有可能这样做? 如何?我知道mega.co.nz与文件下载具有类似的功能,它们首先在客户端上处理文件(用于解密)。他们在使用这种技术吗?

1 个答案:

答案 0 :(得分:-1)

您可以将下载的部件保存到localStorage。您将必须首先将每个部分序列化为一个字符串。那么您可以致电localStorage.setItem。您的代码可能如下所示:

localStorage.setItem('download-part-' + chunkIndex, chunkDataAsString);
chunkDataAsString = ''; //  let the garbage collector collect the large string