Reading a zip file from a GET request without saving?


#1

All:
I am trying read zip file from HTTP GET request. One way to do it is by
saving the response body to a physical file first and then reading the
zip file to read the files inside the zip.

Is there a way to read the files inside directly without having to save
the zip file into a physical file first?

My current code:

Net::HTTP.start(“clinicaltrials.gov”) do |http|
resp = http.get("/ct2/results/download?id=15002A")
open(“C:\search_result.zip”, “wb”) do |file|
file.write(resp.body)
end
end

Zip::ZipFile.open(“C:\search_result.zip”) do |zipfile|
xml = zipfile.file.read(“search_result.xml”)

end

Many thanks,
christoph


#2

Arthur Christoph wrote:

Is there a way to read the files inside directly without having to save
the zip file into a physical file first?

I couldn’t figure out how to do that, but you can always use TempFile to
handle creating a unique name and then deleting the file automatically
when your program terminates.