【发布时间】:2017-11-30 21:19:57
【问题描述】:
我正在使用带有 hapi 的 Node。
对于文件服务,它适用于高达 1.8 GB 的文件。当我尝试提供 2.4 GB 的文件时,似乎出了点问题并且下载了一个空目录。有什么线索吗?
【问题讨论】:
标签: node.js file hapijs static-files
我正在使用带有 hapi 的 Node。
对于文件服务,它适用于高达 1.8 GB 的文件。当我尝试提供 2.4 GB 的文件时,似乎出了点问题并且下载了一个空目录。有什么线索吗?
【问题讨论】:
标签: node.js file hapijs static-files
尝试使用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;
}
【讨论】: