如何使用python请求模块(包括文件和数据)流式上传?

use*_*580 4 python file-upload http python-requests

我有这个代码python请求代码片段(部分)将文件和一些数据上传到服务器:

files = [("FileData", (upload_me_name, open(upload_me, "rb"), "application/octet-stream"))]
r = s.post(url, proxies = proxies, headers = headers, files = files, data = data)
Run Code Online (Sandbox Code Playgroud)

由于这会将整个文件读入内存,因此在某些情况下可能会导致一些问题。从请求文档中,我知道它支持这样的流式上传:

with open('massive-body') as f:
    requests.post('http://some.url/streamed', data=f)
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何更改我的原始代码以支持流式传输。任何人都可以帮忙吗?

谢谢。

Luk*_*asa 5

当前请求不支持进行包含比单个文件更多数据的流式上传。你要发送的事实data对你POST意味着你正在做一个多文件上传,目前要求并不会为你提供任何方式流式传输。