【问题标题】:Stream response from server to local file in javascript?在javascript中将响应从服务器流式传输到本地文件?
【发布时间】:2021-08-05 20:05:07
【问题描述】:

我们有一个 REST API 端点,它将流式传输数 GB 的数据作为响应。当前使用 xhr 和 responseType: blob,然后在我们的 Web 界面中,我们希望将该响应流式传输到一个文件中,而不是将整个响应存储在内存中,并尝试将其保存到一个文件中。 {围绕 fetch API。仍然不能完全弄清楚如何让这样的事情发挥作用。我们缺少什么?

【问题讨论】:

标签: javascript


【解决方案1】:

执行此操作的规范 HTTP 方法是使用 HTTP 分块响应。这意味着不是使用 XHR,而是将浏览器指向文件 URI,并且服务器应该响应一个表明它支持分块的响应。

您实际上是在尝试使用 XHR 和 JavaScript 重新发明轮子(下载文件)。

将浏览器指向正确的 URI,它将直接流式传输到客户端的磁盘。支持开箱即用恢复损坏的下载!

【讨论】:

  • 这是一个分块的响应。问题是我相信 XHR 首先将整个流拉入内存。
  • 这是真的。确实如此。否则包含响应的变量将是不确定的。
  • 查看@Wyck 链接的问题 - 此处的答案stackoverflow.com/a/49917066/1654381 启动文件的下载。这是将网络资源流式传输到客户端磁盘的正确方法。
  • 浏览器中的 JavaScript 不能在用户磁盘上写入文件/附加文件。没有 API。
  • 如果您需要通过标头进行身份验证怎么办?
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2013-05-11
  • 2021-06-12
相关资源
最近更新 更多