Ruby - 获取来自二进制流的文件列表,这是一个zip

时间:2015-03-23 11:21:00

标签: ruby zip

我正在向我的网络服务器发出HTTP Get请求。我的服务器以。octet-stream的形式返回.zip文件。我收集它作为变量中的位说' X'

问题是我如何从变量' X'获取zip中的文件及其内容列表,而不保存变量' X'在磁盘上。

我想用Ruby做这一切。是否可能。

1 个答案:

答案 0 :(得分:2)

如果您使用的是rubyzip宝石, 您可以使用Zip::InputStream,它接受​​StringIO对象。 您的HTTP响应可能已经是StringIO。

如果文件创建习惯用法更容易,您也可以使用标准库中的Tempfile类。这些临时文件由解释器处理:

  

"当Tempfile对象被垃圾收集时,或者当Ruby解释器退出时,其关联的临时文件将被自动删除。这意味着在使用后不必显式删除Tempfile ......"