Ich versuche, MP4/Video in der GAE Python-Entwicklungsumgebung zu dienen (mit dev_appserver.py), aber ich konnte es bisher in meinem Browser nicht spielen.Wie kann ich eine Filmdatei vom Entwicklungsserver (dev_appserver.py) von GAE Python ausliefern?
Da der Fehler 'Broken Pipe' auf dem Entwicklungsserver aufgetreten ist und ich ihn in der Produktionsumgebung (auf dem Server von Google) abspielen konnte, kann das Problem durch die parallelen Anforderungen des Browsers verursacht werden. (Wenn mein Verständnis korrekt ist, ist dev_appserver.py Singlethread und kann keine parallelen Anfragen verarbeiten.)
Ich versuchte '- disable-preconnect' Option von Chrome, aber es hat das Problem nicht gelöst.
Gibt es Workarounds dafür? Ihr Rat wird sehr geschätzt.
Bearbeiten: Die Filmdatei wird als eine statische Ressource gespeichert, und ich habe versucht, direkt darauf zuzugreifen (ohne Video-Tag).
[Versionsinformationen]
- OS: Ubuntu 12.04 LTE
- Browser: Chrome 19.0.1084.46, Firefox 12.0
- GAE: Python - 1.6.5,
- Python: 2.7.3
[Fehlerprotokoll]
INFO 2012-05-21 07:35:04,575 dev_appserver.py:2891] "GET /static/test.mp4 HTTP/1.1" 200 -
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 36240)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/chikashi/Development/google_appengine/google/appengine/tools/dev_appserver.py", line 2579, in __init__
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 693, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
----------------------------------------
Können Sie uns Ihren Quellcode zeigen? Verwenden Sie den Blobstoredownloadhandler? –
Entschuldigung für den Informationsmangel. Die Filmdatei wird als statische Ressource gespeichert, daher verwende ich den BlobstoredDownloadhandler nicht. –
Ja, dev_appserver.py ist single-threaded. – allyourcode