Python запрос "запрос объекта слишком велик" при загрузке больших файлов - PullRequest
0 голосов
/ 23 января 2019

При загрузке файла OVA на сервер, размер которого составляет около 2,5 ГБ, появляется ошибка « 413 слишком большой объект запроса» .Теперь очевидное предположение состоит в том, чтобы проверить конфигурацию в файле nginx, которая

client_body_temp_path       /srv/storage/tmp/package;
client_body_in_file_only    clean;
client_body_buffer_size     200M;
client_max_body_size        5000M;

Так что это выглядит нормально.

Та же самая операция работает через браузер. Запрос на chrome выглядит как enter image description here

И это мой код

import requests_toolbelt
str = uuid.uuid4()
file_name = path.basename(build_path)
data = open(build_path, 'rb')
files = {
    'package': (file_name, data, 'application/octet-stream')
}
m = requests_toolbelt.MultipartEncoder(fields=formdata)
headers = {
    'Content-Type': m.content_type
}
res = session.post(url, data=m, params={'X-Progress-ID': str, userpkgname':file_name})

Итак, загрузка начинается, пока она загружает весь файл.На сервере я вижу загружаемые файлы размером 200M.Но когда загружаются почти целые файлы, в ответ я получаю «слишком большой объект запроса 413».На сервере также я вижу ошибку

2019/01/23 04:43:00 [error] 1679#1679: *14837 client intended to send too large body: 2699777150 bytes, client: 10.110.32.140, server: _, request: "POST url&X-Progress-ID=ab4b6b11f4d48a1f6909532d89c2501d HTTP/1.1", upstream: "http://127.0.0.1:6443/upload/urlX-Progress-ID=ab4b6b11f4d48a1f6909532d89c2501d", host: "10.110.202.250"

Примечание: Я отредактировал изображение и ответил, чтобы замаскировать конфиденциальную информацию компании.

...