python在上传大文件时请求“请求实体太大”

时间:2019-01-23 05:23:53

标签: python nginx python-requests python-2.x

将大约2.5G的OVA文件上传到服务器时,出现“ 413个请求实体太大” 错误。现在显而易见的猜测是检查ngp文件中的配置

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"

注意: :我已经编辑了图片并做出了回应,以掩盖公司的敏感信息。

0 个答案:

没有答案