2015-03-23 2 views
0

Я делаю запрос HTTP Get на свой веб-сервер. Мой сервер возвращает .zip-файл в виде октетного потока. Я собираю его в виде битов в переменной say 'X'Ruby - Получить список файлов из двоичного потока, который является zip

Вопрос: как я могу получить переменную X из списка «X», не сохраняя содержимое переменной «X» на диске.

Я хочу сделать все это в Ruby. Является ли это возможным.

+0

это может вам помочь. http://stackoverflow.com/questions/9204423/how-to-unzip-a-file-in-ruby-on-rails – userkhan

ответ

2

Если вы используете драгоценный камень rubyzip, вы можете использовать Zip::InputStream, который принимает объекты StringIO. Ваш HTTP-ответ может уже быть StringIO.

Вы также можете использовать класс Tempfile из стандартной библиотеки, если легче создать файловую идиому. Эти TempFiles обрабатываются интерпретатором:.

«Когда объект Временный файл будет мусора, или при выходе из интерпретатора Ruby, связанный с ним временный файл автоматически удаляется Это означает, что это это лишнее явно удалить TempFile после использования ... "