【问题标题】:Node not able to serve large files?节点无法提供大文件?
【发布时间】:2017-11-30 21:19:57
【问题描述】:

我正在使用带有 hapi 的 Node。

对于文件服务,它适用于高达 1.8 GB 的文件。当我尝试提供 2.4 GB 的文件时,似乎出了点问题并且下载了一个空目录。有什么线索吗?

【问题讨论】:

    标签: node.js file hapijs static-files


    【解决方案1】:

    尝试使用res.pipe 分块发送文件。这是我用于流式传输大文件的一些示例代码。但这不是完整的代码。应该足以引导您朝着正确的方向前进。

    if (req.headers.range) {
      contentType = mime.lookup(filePath);
      var range = req.headers.range;
      var parts = range.replace(/bytes=/, "").split("-");
      var partialstart = parts[0] || "0";
      var partialend = parts[1];
    
      var start = parseInt(partialstart, 10);
      var end = partialend ? parseInt(partialend, 10) : fileSize - 1;
      var chunksize = (end - start) + 1;
      var file = fs.createReadStream(filePath, {
        start: start,
        end: end
      });
      res.writeHead(206, {
        'Content-Range': 'bytes ' + start + '-' + end + '/' + fileSize,
        'Accept-Ranges': 'bytes',
        'Content-Length': chunksize,
        'Content-Type': contentType
      });
      file.pipe(res);
      return;
    }

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 2018-03-24
      • 2015-09-12
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      相关资源
      最近更新 更多