在Python中通过HTTP发送大文件的内容

时间:2012-10-08 14:47:15

标签: python http

  

可能重复:
  Python: HTTP Post a large file with streaming

我正在编写一个程序,通过http上传大量数据(特别是亚马逊冰川,但这是无关紧要的),我正在寻找减少内存开销的方法。

目前的情况基本上是: - 读取内存中的部分文件, - 将文件上传到服务器。

问题是,部分很大,高达4096 MB,而这只是浪费内存将其全部存储在RAM中。我正在寻找一种方法来减少不超过1 MB的内存。

我一直在看

HTTPConnection.request(method,url [,body [,headers]])

其中body可能是一个打开的文件(不需要将其复制到内存中;只需从磁盘中读取它就可以了):问题是我不想一次性发送一个完整的文件,而是一个任意的部分文件。不过只用那部分数据创建一个新文件,我不知道如何处理这个。

1 个答案:

答案 0 :(得分:0)

根据这个http://bugs.python.org/issue12319 urllib2支持POST的块编码。我想add_data因此可以被多次调用。