有一需求是得到网上图片的文件流 我使用了几种方法,可以得到但时间有点长 测试图片为http://a.hiphotos.baidu.com/baike/c0%3Dbaike150%2C5%2C5%2C150%2C50/sign=1dc843d302087bf469e15fbb93ba3c49/6a63f6246b600c338719a2501a4c510fd8f9a1c1.jpg 一执行 100 次用时 8s
image = MiniMagick::Image.open(image_url)
image_path = image.path
io =File.open(image_path)
二 执行 100 次用时 3s
img_file = RestClient.get(image_url, user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4")
file_name = Time.now.to_i.to_s+"#{rand(1000)}"
puts file_name
path = File.join('/tmp', file_name)
FileUtils.makedirs(path) unless Dir.exists?(path)
file_path =File.join(path, file_name+".jpg")
open(file_path, "wb") { |f| f.write(img_file) }
三 执行 100 次用时 4s
img = open(img_url, "User-Agent"=> "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4")
file_path = "#{img.path}.#{img.content_type.split('/')[1]}"
File.rename( img.path, file_path )
谁有更快的方法可以分享下, 我这几个方法会随图片大小增加而变的很长 90K 的图片需要 10s+