[英]Buffering a client-side file download
我有一個文件,在服務器端分為多個部分。 完整的文件非常大,它的大小可能達到10 GB或更多(這是首先將其拆分的原因)。
該文件采用特定格式,在下載之前必須先在客戶端進行處理。
現在,我知道可以將Blob
下載到客戶端,進行處理,然后使用以下方法從此處下載Blob
: JavaScript blob文件名,不帶鏈接
這里的問題是,我需要從客戶端的所有文件部分構造一個巨大的blob,這是我不想要的,因為它可能很快就會超出RAM限制。
我想分別下載文件的每個部分,然后對其進行處理並下載“部分” blob。 這意味着我需要開始下載,然后逐個添加blob,直到下載完成。
有可能這樣做嗎? 怎么樣? 我知道mega.co.nz在文件下載方面做一些類似的工作,它們首先在客戶端處理文件(用於解密)。 他們在使用這種技術嗎?
您可以將下載的零件保存到localStorage 。 您將必須首先將每個部分序列化為一個字符串。 然后您可以調用localStorage.setItem
。 您的代碼可能如下所示:
localStorage.setItem('download-part-' + chunkIndex, chunkDataAsString);
chunkDataAsString = ''; // let the garbage collector collect the large string
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.