<p>我在上传到amazons3时也遇到了同样的问题。在</p>
<p>我的浏览器可以以8MB/s的速度上传,但是httplib或请求只能以1MB/s的速度进行</p>
<p>经过大量的搜索,我发现httplib确实是罪魁祸首。在</p>
<p>大小固定为8192。在</p>
<p>我创建了这个Monkey补丁并测试了20MB到500MB文件的许多值。在</p>
<p>有了40万,我的速度和我的浏览器一样:8MB/s.:)</p>
<pre><code>import httplib
import httplib2
def patch_httplib(bsize=400000):
""" Update httplib block size for faster upload (Default if bsize=None) """
if bsize is None:
bsize = 8192
def send(self, data, sblocks=bsize):
"""Send `data' to the server."""
if self.sock is None:
if self.auto_open:
self.connect()
else:
raise httplib.NotConnected()
if self.debuglevel > 0:
print "send:", repr(data)
if hasattr(data, 'read') and not isinstance(data, list):
if self.debuglevel > 0: print "sendIng a read()able"
datablock = data.read(sblocks)
while datablock:
self.sock.sendall(datablock)
datablock = data.read(sblocks)
else:
self.sock.sendall(data)
httplib2.httplib.HTTPConnection.send = send
</code></pre>