2012-09-23 1 views
4

작은 프로젝트에 python -m SimpleHTTPServer을 사용하고 있습니다. index.html 파일은 일부 비디오를 참조합니다. <video><source src="big_buck_bunny_480p_stereo.ogg"></video> 이 파일의 크기는 159MB입니다. 다운로드하려고하면 SimpleHTTPServer가 내 비디오 대신 몇 가지 오류 메시지를 표시합니다.SimpleHTTPServer - 큰 파일 검색

Marc-Laptop - - [23/Sep/2012 18:18:29] "GET /big_buck_bunny_480p_stereo.ogg HTTP 
/1.1" 200 - 
---------------------------------------- 
Exception happened during processing of request from ('192.168.4.38', 51152) 
Traceback (most recent call last): 
    File "C:Program Files (x86)PythonlibSocketServer.py", line 284, in _handle 
_request_noblock 
    self.process_request(request, client_address) 
    File "C:Program Files (x86)PythonlibSocketServer.py", line 310, in process 
_request 
    self.finish_request(request, client_address) 
    File "C:Program Files (x86)PythonlibSocketServer.py", line 323, in finish_ 
request 
    self.RequestHandlerClass(request, client_address, self) 
    File "C:Program Files (x86)PythonlibSocketServer.py", line 640, in __init_ 
_ 
    self.finish() 
    File "C:Program Files (x86)PythonlibSocketServer.py", line 693, in finish 
    self.wfile.flush() 
    File "C:Program Files (x86)Pythonlibsocket.py", line 303, in flush 
    self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 10054] Eine vorhandene Verbindung wurde vom Remotehost geschlossen 

---------------------------------------- 
+3

영어 로켈에서 서버를 실행하십시오. 영어 오류 메시지는 일반적으로 검색 엔진에서 쉽게 찾을 수 있습니다. –

+1

글쎄, 왜 정적 인 내용을 파이썬으로 스트리밍하겠습니까? 먼저 NGINX 나 Apache와 같은 HTTP 서버를 사용하는 것이 좋습니다. 둘째, 나는 일어날 수있는 일은 전체 파일을 메모리에로드하고 나서 스트리밍하려고 시도하는 것입니다. 실패한 경우 - 먼저 크기만큼 헤더를 보낼 수 있는지 확인한 다음 블록 단위로 출력하여 전혀 메모리에로드되지 않습니다. – ddinchev

+1

@Veseliq 왜 정적 컨텐츠에 Python을 사용하지 않습니까? 웹 서버는 웹 서버입니다. (나는 전체 파일이 slurped된다는 생각을 의심하지 않지만 파이썬이나 다른 서버와 직각을 이룬다.) –

답변

3

simpleHTTPServer는 모든 것을 버퍼링하려고 시도하고 있으며 실제로 메모리 부족으로 폭발 할 것입니다. 비동기로하는 것이 더 좋지만 simpleHTTPServer는이를 수행하는 방법을 모릅니다. thread을 확인하십시오. 누군가가 simpleHTTPserver의 수정 된 버전을 제안했습니다 : SimpleAsyncHTTPServer.py

+0

[SimpleAsyncHTTPServer.py] (https://github.com/cvan/waddle/blob/master/SimpleAsyncHTTPServer.py)에 대한 링크 – spiffytech