4 votes

SimpleHTTPServer - Servir les gros fichiers

J'utilise python -m SimpleHTTPServer pour un petit projet. Le fichier index.html fait référence à des vidéos. <video><source src="big_buck_bunny_480p_stereo.ogg"></video> Ce fichier a une taille de 159 MB. Lorsque j'essaie de le télécharger, SimpleHTTPServer affiche des messages d'erreur au lieu de ma vidéo.

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

----------------------------------------

4voto

karlcow Points 4291

SimpleHTTPServer essaie de tout mettre en mémoire tampon et va en effet exploser par manque de mémoire. Il est préférable de le faire de manière asynchrone mais simpleHTTPServer ne sait pas comment faire. Vérifiez que filetage . Quelqu'un a proposé une version modifiée de simpleHTTPserver : SimpleAsyncHTTPServer.py

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X