4

我试图用 python-requests 上传我的大文件(大约 1 gb),但它没有流式传输 - 将它加载到内存中。

with open('file.rar','rb') as ff:
    upload = requests.post(host,files={"file": ff})

正如文档所说,我尝试过:

with open('file.rar','rb') as ff:
    upload = requests.post(host,data=ff)

及其工作,但我需要修改其他 POST 字段。如何在 python 请求中做到这一点?

4

1 回答 1

1

根据 http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests上的请求包文档

下面部分说明,您需要 files= 和一些 python dict 包装器。不确定这是否是您想要的。但是这种模式允许您通过将它们放入传递给数据参数的字典中来修改其他字段,如我所见。

>>> url = 'http://httpbin.org/post'
>>> files = {'file': open('report.xls', 'rb')}

>>> r = requests.post(url, files=files)
>>> r.text
{
  ...
  "files": {
   "file": "<censored...binary...data>"
,
 ...

}

于 2014-05-29T01:19:24.820 回答