我在瀏覽器中運行的JS webapp通過webrtc數據通道接收數據。保存連續生成的數據從瀏覽器到文件
現在我需要保存收到的數據文件。我可以將數據接收到blob中,然後保存到文件中,但是我需要連續保存數據,而不將所有數據都存儲在內存中。
例如我的申請被接受5 GB數據的小塊,這是恕我直言,不是在內存中鏈接的所有塊成一個巨大的斑點,比它保存到文件很好的做法。
我希望它的工作標準下載如何工作以同樣的方式。任何想法?
我在瀏覽器中運行的JS webapp通過webrtc數據通道接收數據。保存連續生成的數據從瀏覽器到文件
現在我需要保存收到的數據文件。我可以將數據接收到blob中,然後保存到文件中,但是我需要連續保存數據,而不將所有數據都存儲在內存中。
例如我的申請被接受5 GB數據的小塊,這是恕我直言,不是在內存中鏈接的所有塊成一個巨大的斑點,比它保存到文件很好的做法。
我希望它的工作標準下載如何工作以同樣的方式。任何想法?
您必須下載每個斑(你可以看看RecordRTC),然後您下載之後將其合併在一起。
另一種辦法是通過WebSocket的積極地發送數據,一旦它擊中WebSocketServer其合併到一起。
是的,但是當我下載2 GB的文件這樣,我需要有2GB的RAM中的合併blob而不是保存。但是當你以標準的方式下載2GB文件(下載鏈接)時,文件被逐個寫入磁盤,因此瀏覽器不會在RAM中分配2GB,這是我需要的行爲。有什麼建議麼?將接收到的數據發送到服務器,然後再次下載合併的文件不是一種選擇,因爲它會產生很多服務器流量,我想避免WEBRTC。 – user2106769
douplicate: http://stackoverflow.com/questions/42066537/javascript-download-stream-data –
你如何將blob保存爲文件? – Bergi
您可以使用Json通過websocket發送數據框。然後在websocketserver上解析JSon並將其推送到一個文件。 –
我使用var url = window.URL.createObjectURL(dataBlob)將文件保存爲文件。然後用url創建鏈接,用戶可以點擊它並將數據保存到文件中。 – user2106769