2014-04-22 62 views
0

我在瀏覽器中運行的JS webapp通過webrtc數據通道接收數據。保存連續生成的數據從瀏覽器到文件

現在我需要保存收到的數據文件。我可以將數據接收到blob中,然後保存到文件中,但是我需要連續保存數據,而不將所有數據都存儲在內存中。

例如我的申請被接受5 GB數據的小塊,這是恕我直言,不是在內存中鏈接的所有塊成一個巨大的斑點,比它保存到文件很好的做法。

我希望它的工作標準下載如何工作以同樣的方式。任何想法?

+0

你如何將blob保存爲文件? – Bergi

+1

您可以使用Json通過websocket發送數據框。然後在websocketserver上解析JSon並將其推送到一個文件。 –

+0

我使用var url = window.URL.createObjectURL(dataBlob)將文件保存爲文件。然後用url創建鏈接,用戶可以點擊它並將數據保存到文件中。 – user2106769

回答

0

您必須下載每個斑(你可以看看RecordRTC),然後您下載之後將其合併在一起。

另一種辦法是通過WebSocket的積極地發送數據,一旦它擊中WebSocketServer其合併到一起。

+1

是的,但是當我下載2 GB的文件這樣,我需要有2GB的RAM中的合併blob而不是保存。但是當你以標準的方式下載2GB文件(下載鏈接)時,文件被逐個寫入磁盤,因此瀏覽器不會在RAM中分配2GB,這是我需要的行爲。有什麼建議麼?將接收到的數據發送到服務器,然後再次下載合併的文件不是一種選擇,因爲它會產生很多服務器流量,我想避免WEBRTC。 – user2106769

+0

douplicate: http://stackoverflow.com/questions/42066537/javascript-download-stream-data –

相關問題