Python request库大文件传输出现MemoryError问题

tech2023-09-04  88

使用requests.post(url=url, headers=headers, files=files) 这种形式传输大文件出现MemoryError 错误。解决办法:

使用扩展库requests_toolbelt

 

准备用HTTP 在局域网内 上传一些文件,文件一般都在1G左右

1 2 3 4

r = requests.post('****',                  data={'path':'2016/07/08/5ASD5SDFASDFASDF/cad.zip'},                  files={'file': open(filename, 'rb')}                  )

这样上传小文件可以, 但是上传大文件时候会py会报 memeryError的内存错误。 如何解决此问题呢?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

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)

用了个扩展库requests_toolbelt,可以完美解决

最新回复(0)