我正在尝试使用Net::Http模块通过Http下载一个文件。我尝试下载的文件是http://public.dhe.ibm.com/ibmdl/export/pub/softwar...它的尺寸是25米。
当尝试使用下面的代码通过Ruby下载时,我发现Ruby -2.1.2p95的大小被放大到大约85M。现在,当尝试使用zlib utils归档(Zlib::GzipReader.open(Gem::Package::TarReader.new)) do |tar|解压这个归档文件时,它失败了,报告它不是gzip格式。
但是,当我在Ruby-1.9.3p429中尝试相同的代码时,它工作得很好,并且我能够看到一个25M大小的文件被成功下载和解压。
你知道哪里出问题了吗?我是不是遗漏了什么?
下载文件的代码:
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
发布于 2014-07-31 21:15:15
这是因为,如果Ruby-2.1.2中的Net::HTTP发现目标是gzip格式,它会自动解压缩文件。
为了避免解压缩,automatically....one需要将报头Accept-encoding设置为identity。
7stud对我在Ruby论坛上提出的相同问题的回答:https://www.ruby-forum.com/topic/5342548#1153921
谢谢
Praveen
https://stackoverflow.com/questions/25037130
复制相似问题