http - python requests post 大文件和获取进度条
本文介绍了http - python requests post 大文件和获取进度条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
准备用HTTP 在局域网内 上传一些文件,文件一般都在1G左右
r = requests.post('****',
data={'path':'2016/07/08/5ASD5SDFASDFASDF/cad.zip'},
files={'file': open(filename, 'rb')}
)
这样上传小文件可以, 但是上传大文件时候会py会报 memeryError的内存错误。
如何解决此问题呢?
解决方案
from requests_toolbelt import *
m = MultipartEncoder(fields={'file': ('filename',open(f, 'rb'))},
boundary='---------------------------7de1ae242c06ca'
)
import time
def my_callback(monitor):
# Your callback function
print monitor.bytes_read
m = MultipartEncoderMonitor(m, my_callback)
req_headers = {'Content-Type': m.content_type,
'path':'2016/07/09/5ASD5SDFASDFASDF/{}.zip'.format(time.time()),}
r = requests.post(url, data=m, headers=req_headers)
用了个扩展库,可以完美解决2个问题 requests_toolbelt
这篇关于http - python requests post 大文件和获取进度条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文