打开URI下载损坏的文件

时间:2016-05-21 04:30:53

标签: ruby open-uri

我正在尝试使用Ruby下载.tar.gz文件。下载后,文件总是以某种方式损坏。

我正在使用此代码下载文件:

require "open-uri"
File.open('img.tar.gz', 'wb') do |fo|
  fo.write open('https://github.com/Arafatk/language-basics/blob/master/img.tar.gz').read 
end

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

更改open电话中的文件模式:

open('https://github.com/Arafatk/language-basics/blob/master/img.tar.gz', "rb").read

当您需要二进制模式时,它正在 text 模式下打开文件。

您还需要使用正确的URL从Github下载原始文件。在这种情况下,右键单击文件的repo页面上的Raw链接(给定的原始URL)可以找到正确的URL,Raw URL是包含实际二进制图像的URL您正在尝试下载。将网址更改为:https://github.com/Arafatk/language-basics/raw/master/img.tar.gz,我在答案顶部建议的更改就可以了。