>  기사  >  웹 프론트엔드  >  nodejs에서 대용량 파일을 읽는 방법

nodejs에서 대용량 파일을 읽는 방법

亚连
亚连원래의
2018-06-21 17:04:302211검색

이 글에서는 온라인 동영상과 같은 대용량 파일을 자세히 읽을 수 있는 nodejs를 주로 소개하며, 관심 있는 친구들이 참고할 수 있습니다.

nodejs가 동영상을 읽을 때, 한 번만 읽을 수는 없습니다. 이와 같이 클라이언트의 재생은 재생 전에 모든 버퍼링이 완료될 때까지 기다리지 않고 버퍼링 중에 재생되도록 일부를 읽고 일부를 반환해야 합니다.

기존 규칙은 다음을 설명하는 코드를 게시하세요.

var fs = require('fs'); 

function readBigFileEntry(filename, response) { 
path.exists(filename, function(exists) { 
if (!filename || !exists) { 
response.writeHead(404); 
response.end(); 
return; 
} 

var readStream = fs.ReadStream(filename); 

var contentType = 'none'; 
var ext = path.extname(filename); 
switch (ext) { 
case ".flv": 
contentType = "video/flv"; 
break; 
} 

response.writeHead(200, { 
'Content-Type' : contentType, 
'Accept-Ranges' : 'bytes', 
'Server' : 'Microsoft-IIS/7.5', 
'X-Powered-By' : 'ASP.NET' 
}); 



readStream.on('close', function() { 
response.end(); 
console.log("Stream finished."); 
}); 
readStream.pipe(response); 
}); 
}

fs 모듈의 ReadStream 메서드를 통해 비디오 스트림을 가져온 다음 종료 이벤트를 바인딩합니다. 스트림이 끝까지 읽을 때 응답 요청을 종료하고 마지막으로 수행합니다. 파이프 방식을 통한 작은 덩어리 작은 블록 읽기. 여기서는 헤드 정보에 Content-Length 속성을 추가할 수 없습니다. 왜냐하면 이 속성을 세그먼트 단위로 읽어야 하기 때문입니다. 이 속성을 추가하면 브라우저는 요청이 끝났다고 판단하고 요청을 닫게 됩니다.

위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 도움이 되길 바랍니다.

관련 기사:

Javascript에서 원형 광고 배너를 구현하는 방법

Swiper 구성 요소를 사용하여 WeChat Mini 프로그램에서 이미지 전환 디스플레이를 구현하는 방법

Javascript에서 원형 광고 배너를 구현하는 방법

Vue의 디버깅 도구 vue-devtools 정보(자세한 튜토리얼)

Vue를 사용하여 통합 Iframe 페이지를 구현하는 방법

위 내용은 nodejs에서 대용량 파일을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.