Web App - 将大量数据流保存到本地文件

6
我想知道在现代浏览器中,对于一个Web应用程序,是否有一种适当的方法(如互联网协议、浏览器API等)可以从Web服务器(在我的情况下是nodejs,但问题集中在客户端)获取大数据流,并将其保存到客户端文件系统的一个大文件中。假设数据量过大,无法完全缓存在应用程序的分配内存中,因此我认为该过程应该直接将数据块从流中添加到文件中。这些数据基本上是数万个数据库记录,应写入诸如CSV之类的格式。
希望我表达清楚了。

你的意思是普通的文件下载吗?也就是在服务器上生成文件,然后将该文件发送给客户端。 - George
1
@George 不,服务器应该从数据库中流式传输数据,客户端应该处理并构建文件。 - Israel
你需要使用 pipe()。https://nodejs.org/dist/latest-v6.x/docs/api/stream.html#stream_readable_pipe_destination_options - Diego ZoracKy
1
@DiegoZoracKy 谢谢,但这是针对服务器端的方法,而我特别询问客户端方面的。 - Israel
1个回答

4
你问是否有一种“适当”的方式。很遗憾,这项技术的支持不够好,而且是全新的。然而,如果你足够勇敢去尝试,这就是你需要做的。
1. 从Web服务器获取数据流
如果你不必支持IE,那么可以使用Fetch API。请参见this question。如果你必须支持IE,那么可以使用websocket来推送一点一点的数据。
2. 将数据流写入磁盘 StreamSaver.js是一个项目,它试图使用ReadableStream API来实现这个目标,但目前只在Opera和Chrome中有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接