Я реализовал API с помощью Falcon, он использует multipart/form для загрузки файла в мой сервер. Когда файл небольшой (~ 1 МБ), запрос POST работает нормально. Но когда файл большой (~ 20 МБ), POST выходит из строя с ошибкой ниже.http: error: ConnectionError: ('Connection aborted.', Error (32, 'Broken pipe')) при выполнении запроса POST по адресу:
Любые отзывы о том, как исправить эту проблему?
Ошибка:
http: error: ConnectionError: ('Connection aborted.', error(32, 'Broken pipe')) while doing POST request to URL: http://...:49160/api/upload
Это мой запрос командной строки: Использование httpie:
http -f POST http://111.111.111.111:49160/api/upload filename=video.mp4 [email protected]/home/chacon/video.mp4
Это моя on_post функция:
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())
Спасибо,
Carlos
У меня есть аналогичная проблема, и мне бы это понравилось, если у кого-нибудь есть какие-либо советы здесь. Я предполагаю, что сервер закрывает соединение (возможно, потому, что тайм-аут запроса истек), но я не уверен, что – jamesatha
привет @jamesatha. когда вы запускаете gunicorn, вы можете указать таймаут в качестве аргумента, чтобы сделать его дольше и дать достаточно времени для завершения загрузки файла. –