2009-07-07 17 views
2

私はHTTP GETリクエストからzipファイルを読み込もうとしています。これを行う1つの方法は、まず レスポンス本文を物理ファイルに保存してから、 zipファイルを読み取り、zip内のファイルを読み取ることです。Rubyに先に保存せずにGETリクエストからzipファイルを読み込む?

ジップファイルを最初に物理ファイルに保存せずに直接ファイルを読み取る方法はありますか?

私の現在のコード:あなたは、メモリ内のバッファから解凍することはできませんrubyzipを、使用しているよう

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 

答えて

0

が見えます。

代わりにChilkat's Ruby Zip Libraryを使用すると、zipデータのメモリ内処理がサポートされています。私は自分自身でライブラリを使った経験はありませんが、「メモリ内のZipを作成または開く」ことができると主張しています。しかし、チルカットの図書館は無料ではありませんので、考慮すべきです。この機能を持つ無料のライブラリがあるかどうかはわかりません。

0

RubyZipが何も変更せずにファイルを再生できるように、メモリ内ファイルを実装する方法があります。

this Ruby Hack

関連する問題