Here with uWSGI setup i am getting this error:

 File "/home/v3ss/WorkSpace/FastTract/web2py/gluon/fileutils.py", line
376, in copystream

    data = src.read(chunk_size)
IOError: error waiting for wsgi.input data



It happens when file size > 300 MB.

I am running using uwsgi.
#!/bin/bash
./uwsgi/uwsgi --http :8000 --chdir ./web2py/ --python-path ./web2py/
--module uwsgihandler \
--socket /tmp/web2py.sock -p 6   \
--close-on-exec  # --socket-timeout 6000 --harakiri 6000 --http-timeout
6000  --harakiri-verbose --cpu-affinity 1

here is my controller :

# -*- coding: utf-8 -*-
import os
import urllib
import traceback
def upload():
    upfile = request.vars.file
    fname  = urllib.unquote(request.vars.file.filename)
    # cont_length = request.headers.CONTENT_LENGTH
    source_path= urllib.unquote(request.vars.source_path)

    file_path = os.path.join(source_path,fname)

    _chunk_writer(upfile,file_path)
    # print "results",type(upfile),upfile.file.read()
    return response.json("Done")


def _chunk_reader(FieldOBJ, chunk_size=1024):
    while True:
        chunk = FieldOBJ.file.read(chunk_size)
        # print "CHUNK",chunk
        if not chunk:
            FieldOBJ.file.close()
            break
        yield chunk


def _chunk_writer(file_obj,file_path):

    CHUNK_SIZE = 1024 * 1024

    try:
        with open(file_path, 'wb') as fp:
            for chunk in _chunk_reader(file_obj,CHUNK_SIZE):
                # print chunk
                if not chunk:
                    break
                fp.write(chunk)
        return True
    except:
        print "File Error Occoured",traceback.format_exc()
        return False

# def _shutil_chunkwriter(file_obj,file_path):

#     import shutil
#     CHUNK = 1024 * 1024
#     out_file=open(file_path, 'wb')
#     shutil.copyfileobj(file_obj,fp,CHUNK)
#     out_file.close()
#     file_obj.close

Reply via email to