我有一个文件,该文件在服务器端分为多个部分。完整的文件非常大,它的大小可能达到10 GB或更多(这是首先将其拆分的原因)。
文件具有特定格式,必须先在客户端进行处理,然后才能下载。
现在,我知道我可以下载到Blob
到客户端,进行处理,然后使用以下方法从那里下载Blob
:JavaScript blob filename without link
这里的问题是,我需要从客户端的所有文件部分构造一个巨大的blob,这是我不想要的,因为它可能很快超过RAM限制。
我想分别下载文件的每个部分,然后对其进行处理并下载“部分” blob。这意味着我需要开始下载,然后逐个添加blob,直到下载完成。
是否有可能这样做? 如何?我知道mega.co.nz与文件下载具有类似的功能,它们首先在客户端上处理文件(用于解密)。他们在使用这种技术吗?
答案 0 :(得分:-1)
您可以将下载的部件保存到localStorage。您将必须首先将每个部分序列化为一个字符串。那么您可以致电localStorage.setItem
。您的代码可能如下所示:
localStorage.setItem('download-part-' + chunkIndex, chunkDataAsString);
chunkDataAsString = ''; // let the garbage collector collect the large string