ruby下载文件保存到本地较好的方法

因为要汇出Excel档案,需要将图片下载回本地,才能写入excel档案。但总觉得下载的速度有点慢。

一开始的方法:

File.open( "#{Rails.root}/public/images/#{r.envelop}.png", "w") do |f|
    image_file = RestClient.get get_image_url
    f.write(image_file.force_encoding("utf-8"))
end

实测,导入25张图片用时15034ms。

思考:平时在网站上加载25张图片,超快!3秒内搞定。为什么同样的网络,用ruby代码来下载就如此费时!一定是哪个步骤比较耗时。猜测是转码RestClient

在Google找到的另一种方法:

data=open("http://example.com/public/2.jpg"){|f|f.read}
open("/public/1.jpg","wb"){|f|f.write(data)}

实测,时间降到5164ms。

comments powered by Disqus