зипрубы или рубызип? - PullRequest
       18

зипрубы или рубызип?

6 голосов
/ 02 августа 2011

У меня есть сайт ruby ​​на сайте rails (rails 2.0.2, ruby ​​1.8.6) с установленными как rubyzip, так и zipruby, но они конфликтуют с File.exists?метод, поэтому я хочу удалить один.Каково общее мнение о лучшем zipi api в будущем?

Существуют ли существенные преимущества одного над другим?

Ответы [ 6 ]

17 голосов
/ 03 августа 2011

Из того, что я видел, rubyzip иногда странным образом обрабатывает zip-файлы, потому что выполняет свою собственную обработку индекса и записей zip-файлов. Например, если вы используете rubyzip, чтобы распаковать файл docx и перепаковать его, Microsoft Word не откроет его. Но zipruby использует очень стандартную библиотеку libzip C (с небольшими изменениями) и не будет портить docx. Поэтому, если вы стремитесь к совместимости форматов, я бы предложил использовать zipruby. Может, rubyzip улучшился с тех пор, как я попробовал, но вы должны попробовать это сами.

2 голосов
/ 02 августа 2011

Совершенно случайный ответ, как я никогда не пробовал: переходя от вашего текущего состояния, RubyZip может быть более перспективным. Судя по следующим (скудным) данным, RubyZip более популярен и, похоже, лучше работает с новыми версиями Ruby:

RubyZip с 1.9: http://isitruby19.com/rubyzip

ZipRuby с 1.9: http://isitruby19.com/zipruby

Если у вас нет более веских доказательств, я бы пошел с rubyZip. Также смотрите Какая библиотека zip хорошо работает с Ruby 1.9.2? . Тем не менее, есть также форк RubyZip (https://github.com/postmodern/rubyzip2), снова указывающий на его популярность. И документы выглядят интереснее.

0 голосов
/ 18 августа 2014

Похоже, что rubyzip может хранить неверное несжатое значение для файла, что приводит к сбою некоторых библиотек без сжатия (например, miniz) при распаковке. Zipruby выглядит так, как будто хранит правильный несжатый размер. Я собираюсь пойти с zipruby.

0 голосов
/ 24 октября 2012

rubyzip не защищает паролем, а zipruby: ссылка

0 голосов
/ 03 августа 2011

Если вам нужно получить только один файл или несколько файлов из zip-файла, вы можете попробовать использовать Pinch, который позволит вам извлечь файл через http в ruby ​​

Pinch: Retrieveфайл внутри zip-файла, по сети!

0 голосов
/ 02 августа 2011

Я часто использовал https://github.com/toretore/zippy драгоценный камень, и я думаю, что это довольно хорошо.Это оболочка для rubyzip, которая значительно упрощает операции с zip-файлами.

...