2012-10-08 46 views
0

可能重复:
Python: HTTP Post a large file with streaming发送大文件的内容通过HTTP在Python

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

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

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

我一直在寻找

HTTPConnection.request(方法,URL [,身体[,标题])

,其中主体可以是一个打开的文件(不需要将它复制到记忆;只要从磁盘读取,这很好):问题是我不想一次发送一个完整的文件,而不是一个文件的任意部分。然而,仅仅使用这部分数据创建一个新文件,我不知道如何处理这个问题。

+0

你看过龙卷风这样的第三方应用吗? – karthikr

+0

是来自httplib的吗? – njzk2

+0

有可能HTTPConnection.send可能会被多次调用(用于发送同一文件的多个部分(http://stackoverflow.com/questions/5093622/multiple-send-on-httplib-httpconnection-and-multiple-read -on-httpresponse) – njzk2

回答