0
hapi와 Node를 사용하고 있습니다.노드가 큰 파일을 처리 할 수 없습니까?
파일 서비스의 경우 최대 1.8GB 파일까지 작동합니다. 2.4GB의 파일을 제공하려고 시도했을 때 문제가 발생하고 빈 디렉토리가 다운로드 된 것으로 보입니다. 어떤 단서?
hapi와 Node를 사용하고 있습니다.노드가 큰 파일을 처리 할 수 없습니까?
파일 서비스의 경우 최대 1.8GB 파일까지 작동합니다. 2.4GB의 파일을 제공하려고 시도했을 때 문제가 발생하고 빈 디렉토리가 다운로드 된 것으로 보입니다. 어떤 단서?
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;
}