使用Faraday Ruby gem下载图像并写入磁盘

Eli*_*kes 12 ruby io binary file download

使用法拉第宝石来搜索图像的URL时,如下所示:

http_conn = Faraday.new do |builder|
  builder.adapter Faraday.default_adapter
end 
response = http_conn.get 'http://example.tld/image.png'
Run Code Online (Sandbox Code Playgroud)

如何将图像文件从法拉第响应写入磁盘?

调试response.body属性显示它是二进制数据.

任何帮助非常感谢.

mu *_*ort 16

为什么response.body不像任何其他文件一样写?

File.open('image.png', 'wb') { |fp| fp.write(response.body) }
Run Code Online (Sandbox Code Playgroud)

  • 如果响应体很大,会发生什么?看起来整个主体在写入文件之前被读入内存 - 能够以块的形式写入文件是件好事. (4认同)