【问题标题】:Streaming file data from NodeJS and saving/downloading it on client从 NodeJS 流式传输文件数据并将其保存/下载到客户端
【发布时间】:2021-12-28 01:48:25
【问题描述】:

我有一个基于 NodeJS 的服务器,它读取一个加密文件,解密它,然后我在一个变量中有一个大文件(~1GB)。 现在我需要将此文件发送给客户端并让客户端下载它。 我的服务器端代码目前如下所示:

变量plain包含解密后的字节格式文件数据。

在客户端部分,我有基于 EJS 的视图。 客户端代码如下所示:

我还有其他问题 -

  1. 我可以直接从变量流式传输文件并将其组装/保存在客户端吗?
  2. 或者我需要将其保存到文件中,然后发送文件内容。
  3. 我正在使用 busboy 进行文件上传。它能以某种方式帮助完成这项任务吗?

【问题讨论】:

    标签: node.js fs


    【解决方案1】:

    您可以使用名为 stream.PassThrough() 的东西将您的解密缓冲区流式传输到客户端。 这是您可以尝试的附加示例...

    var stream = require("stream");
    var readStream = new stream.PassThrough();
    // create stream
    readStream.end(plain);
    // Send your response
    readStream.pipe(res);

    让我知道这是否有效

    注意:“Plain”应该是数据/文件的缓冲区

    "res" 是您对 api 方法的回应 -- 示例 >> app.get("/:name", async (req, res) => .. 以此类推

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      相关资源
      最近更新 更多