无内存上传 - 使用python请求无法实现流文件

时间:2013-11-01 19:06:08

标签: python python-requests

我试图用python请求上传我的大文件(大约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-requests中执行此操作?

1 个答案:

答案 0 :(得分:1)

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

在下面的部分内容中,您需要files =和一些python dict包装器。不确定这是不是你想要的。但是这个模式允许你通过将它们放在传递给数据参数的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>"
,
 ...

}