Как создать zip-архив с помощью Ruby on Rails?

У меня есть куча файлов в каталоге. Я хочу заархивировать некоторые из них в архив zip.

Я вижу, что есть различные sol для. Я мог бы использовать драгоценный камень, такой как rubyzip или запустить exec и просто использовать инструмент командной строки.

Это повлияет на важную часть системы, над которой я работаю, поэтому я хотел бы получить некоторые отзывы и/или указания по созданию zip файлов с Rails.

Ответы

Ответ 1

rubyzip - хороший выбор. Я использовал его для zip-прикреплений в частных сообщениях в социальном приложении, над которым я работал раньше. Однако, если файлы, которые вы зажимаете, имеют большие размеры, вам рекомендуется выполнить некоторую фоновую обработку с помощью delayed_job, например.

Ответ 2

Если вы только застегиваете файлы и ничего не делаете, я бы предложил использовать exec или system или% x, чтобы сделать zip, потому что установка и использование драгоценного камня для такой незначительной задачи не имеет большого смысла.

Однако, если вы хотите сделать больше, чем просто заархивировать какой-то каталог и использовать другие функции, которые предлагает драгоценный камень, то очевидным выбором было бы использовать драгоценный камень rubyzip.

Ответ 3

Если gzip является опцией, я рекомендую Gzip, встроенный в ActiveSupport