【问题标题】:Requests and Requests_Toolbelt filesize limitRequests 和 Requests_Toolbelt 文件大小限制
【发布时间】:2015-05-27 02:37:07
【问题描述】:

使用 request_toolbelt 的 MultipartEncoder,我可以将文件上传到我的 Pyramid 服务器,但只能达到一定的大小。一旦文件超过一定大小(不确定确切大小),请求就会抛出 ConnectionError。我的 Pyramid 服务器绝对没有收到请求的迹象。回调监视器显示已读取 2 或 3 个块,但随后中止。为什么??这是我的代码:

### client-side

# callback
def cb(monitor):
    print monitor.bytes_read

file = open('my_big_file.mpg', 'rb')
payload = MultipartEncoder({'uploadedFile': (file.name, file, 'application/octet-stream')})
monitor = MultipartEncoderMonitor(payload, cb)
r = requests.post(url, data=monitor, headers={'Content-Type': payload.content_type})

#### server-side

@view_config(route_name='remote.agent_upload', renderer='json')
def remote_agent_upload(request):
r = request.response
uploadedFile = request.POST['uploadedFile']
fs = uploadedFile.file
filename = uploadedFile.filename
f = open('path_to_storage' + filename, 'wb')
f.write(fs.read())
fs.close()
f.close()
return r

### output and traceback

8192
16384
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python27\lib\site-packages\requests\api.py", line 109, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "c:\Python27\lib\site-packages\requests\api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "c:\Python27\lib\site-packages\requests\sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "c:\Python27\lib\site-packages\requests\sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "c:\Python27\lib\site-packages\requests\adapters.py", line 415, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(10053, 'An established connection was aborted by the software in your host machine'))

【问题讨论】:

    标签: python python-requests pyramid


    【解决方案1】:

    Windows 正在关闭连接,原因不明。详情请参阅this other answer

    简而言之,这不是请求、请求工具带或金字塔的错。

    【讨论】:

    • 谢谢,但它会立即发生(不是超时),始终如一(不是虚假的网络错误)并且仅在“大”文件上发生(为什么 Windows 会区分)。还有其他想法吗?
    • 我以前从未见过该错误或错误代码。这是一个仅限 Windows 的错误,特定于 Windows 终止连接。当您向不同的服务器(例如 httpbin.org 或 requestb.in)发出相同的请求时,是否会发生这种情况?
    猜你喜欢
    • 2022-10-26
    • 2011-04-05
    • 2010-10-26
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    相关资源
    最近更新 更多