2009-10-11 43 views
0

我正在开发我的第一个ORM项目并使用Mechanize。这是的情况:Ruby - 使用机械化::文件响应而不保存到磁盘

我正在从我的网站下载一个zip文件到一个Mechanize :: File对象。 zip内部是一个埋入三个文件夹深度的文件(folder_1/folder_2/file.txt)。我想从zip文件中提取file.txt并返回,而不是zip文件本身。

我的第一个想法是使用zip/zipfilesystem。如果我先将文件保存到磁盘并使用Zip :: ZipFile.open(src),但我可以做到这一点,但任何人都可以告诉我如何通过直接从Mechanize :: File.body发送它。

我的直觉说这一定是可能的,我只是缺少一些基本的东西。我试过...

zipfile = Mechanize::File.body 
Zip::ZipFile.open(zipfile) 

......但从我可以告诉Zip :: ZipFile只能设置为从文件系统找到一个源。

任何方向将是非常赞赏,让我知道,如果有任何问题,提前 罗布

回答

2

感谢看来你想做的事是不可能的rubyzip。从rubyzip库的TODO file

  • 建议:ZipInputStream/ZipOutputStream应该接受除了文件名的IO对象。