如何使用Python请求同时下载和上载文件
我正在尝试从nginx服务器流式下载并同时上载它。下载是使用请求流实现的;上传使用分块-目的是能够在下载/上传发生时报告进度 到目前为止,我得到的总体代码如下:如何使用Python请求同时下载和上载文件,python,http,python-requests,Python,Http,Python Requests,我正在尝试从nginx服务器流式下载并同时上载它。下载是使用请求流实现的;上传使用分块-目的是能够在下载/上传发生时报告进度 到目前为止,我得到的总体代码如下: with closing(requests.get(vmdk_url, stream=True, timeout=60 + 1)) as vmdk_request: chunk_in_bytes = 50 * 1024 * 1024 total_length = int(vmdk_request.headers['Con
with closing(requests.get(vmdk_url, stream=True, timeout=60 + 1)) as vmdk_request:
chunk_in_bytes = 50 * 1024 * 1024
total_length = int(vmdk_request.headers['Content-Length'])
def vmdk_streamer():
sent_length = 0
for data in vmdk_request.iter_content(chunk_in_bytes):
sent_length += len(data)
progress_in_percent = (sent_length / (total_length * 1.0)) * 100
lease.HttpNfcLeaseProgress(int(progress_in_percent))
yield data
result = requests.post(
upload_url, data=vmdk_streamer(), verify=False,
headers={'Content-Type': 'application/x-vnd.vmware-streamVmdk'})
在特定的环境中,这是很好的。我把它放到另一个(如果你感兴趣的话,一个Cloudify插件)中,当它达到60秒左右时,它无法读取数据
因此,我正在寻找一种替代方法——或者更简单地说是更好的——来流式传输下载/上传,因为我60多岁的问题可能围绕着我是如何流式传输的(我希望如此)。最好是使用请求
,但实际上我会使用任何小于等于原始urlib3
的东西