Carlos Chacon
Carlos Chacon

Reputation: 239

http: error: ConnectionError: ('Connection aborted.', error(32, 'Broken pipe')) while doing POST request to URL:

I implemented a API using Falcon, it uses multipart/form to upload a file to my server. When the file is small (~1MB), the POST request works fine. But when the file is large (~20MB), the POST fails with below error.

Any feedback on how to fix this issue?

Error:

http: error: ConnectionError: ('Connection aborted.', error(32, 'Broken pipe')) while doing POST request to URL: http://...:49160/api/upload

This is my request command line: Using httpie:

http -f POST http://111.111.111.111:49160/api/upload filename=video.mp4 file@/home/chacon/video.mp4

This is my on_post function:

def on_post(self, req, resp):


    in_file       = req.get_param('file')

    in_video_name = in_file.filename

    source_video_path = os.path.join("/tmp", in_video_name)



    #working, but fails for large files

    with open(source_video_path, 'wb') as source_video_file:

        source_video_file.write(in_file.file.read())

Thanks,

Carlos

Upvotes: 3

Views: 4277

Answers (1)

Carlos Chacon
Carlos Chacon

Reputation: 239

this was a problem with the gunicorn worker timing out. when you launch gunicorn you can specificy the timeout as an argument to make it longer and give enough time for the file to finish uploading

Upvotes: 1

Related Questions