From dddb5d13de15e6188b796fbba1c0b13b6942780e Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Mon, 18 Jul 2011 22:01:22 +0100 Subject: [PATCH] use a POST request for uploads to work around a gevent issue --- client/djrandom_client/upload.py | 2 +- server/djrandom/receiver/receiver.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/client/djrandom_client/upload.py b/client/djrandom_client/upload.py index 806272a..06c6a91 100644 --- a/client/djrandom_client/upload.py +++ b/client/djrandom_client/upload.py @@ -56,7 +56,7 @@ class Uploader(object): headers={'X-Key': self.api_key, 'Content-Type': 'audio/mpeg', 'Content-Length': str(filesize)}) - req.get_method = lambda: 'PUT' + req.get_method = lambda: 'POST' result = json.loads(urllib2.urlopen(req).read()) return result['status'] finally: diff --git a/server/djrandom/receiver/receiver.py b/server/djrandom/receiver/receiver.py index 376cabf..e5b55ef 100644 --- a/server/djrandom/receiver/receiver.py +++ b/server/djrandom/receiver/receiver.py @@ -44,7 +44,7 @@ def _upload_mp3(incoming_fd, sha1): log.info('successfully stored %s' % (sha1,)) -@app.route('/upload/<sha1>', methods=['PUT']) +@app.route('/upload/<sha1>', methods=['POST']) def upload(sha1): if request.content_type != 'audio/mpeg': log.error('attempted upload with wrong content-type (%s)' % ( @@ -58,7 +58,10 @@ def run_receiver(port, storage_dir, db_url): global storage_root storage_root = storage_dir init_db(db_url) - app.run(host='0.0.0.0', port=port, use_reloader=False) + + from gevent.wsgi import WSGIServer + http_server = WSGIServer(('0.0.0.0', port), app) + http_server.serve_forever() def main(): -- GitLab