通过Ruby Net::Http下载会增大文件大小

通过Ruby Net::Http下载会增大文件大小,ruby,file,http,download,Ruby,File,Http,Download,我正在尝试使用Net::Http模块通过Http下载文件。这个 我试图下载的文件是 ... 它的尺寸是25米 当尝试使用下面的代码通过Ruby下载时,我在Ruby中看到了这一点 -2.1.2p95尺寸放大至约85米。现在当你试图解救的时候 使用zlib utils[Gem::Package::TarReader.new( Zlib::GzipReader.open(archive))do | tar |]它失败了,因为它是 不是gzip格式 但是,当我在Ruby-1.9.3p429中尝试相同的代

我正在尝试使用Net::Http模块通过Http下载文件。这个 我试图下载的文件是 ... 它的尺寸是25米

当尝试使用下面的代码通过Ruby下载时,我在Ruby中看到了这一点 -2.1.2p95尺寸放大至约85米。现在当你试图解救的时候 使用zlib utils[Gem::Package::TarReader.new( Zlib::GzipReader.open(archive))do | tar |]它失败了,因为它是 不是gzip格式

但是,当我在Ruby-1.9.3p429中尝试相同的代码时,它工作得很好,我就是 能够查看已下载并成功卸载的2500万个文件

知道出了什么问题吗?我错过什么了吗

下载文件的代码:

def downloadCLIPackage(destination)

  uri =
URI.parse("http://public.dhe.ibm.com/ibmdl/export/pub/softwar...)
  filename = "/home/praveend/clidriver.tar.gz"

  http_object = Net::HTTP.new(uri.host, uri.port)
  http_object.use_ssl = true if uri.scheme == 'https'
  response = Net::HTTP.get_response(uri)
  f = open(filename, 'wb')
  f.write(response.body)
  f.close()

  filename

end
谢谢


Praveen发生这种情况的原因是,如果Ruby-2.1.2中的Net::HTTP发现目标为gzip格式,它会自动解压缩文件

为了避免自动反压缩…需要将标头Accept encoding设置为identity

7stud回答了我在Ruby论坛上提出的相同问题:

谢谢


Praveen

之所以会发生这种情况,是因为Net::HTTP在看到数据属于gzip类型时会自动解压缩数据。感谢ruby irc频道上的@yorickpeterse在这方面的帮助。但这仍然不能帮助我实现端到端的工作。任何人都知道我如何将这些未删减的内容[它包含目录,我想保留树结构]保存到磁盘上并加以利用?谢谢你,普拉文