Rails 3 paperclip vs carrierwave vs dragonfly vs attachment_fu

Я работаю над обновлением приложения Rails 2.3.11, Ruby 1.9.2 до Rails 3.0.10, а attachment_fu больше не работает.

Я смотрю на переход на paperclip, carrierwave или dragonfly для загрузки файлов или, возможно, поддерживаемую версию Rails 3 поддерживаемой версии attachment_fu.

Какой из этих опций будет лучше всего использовать с точки зрения производительности, насколько он ухожен, насколько легко обновиться с attachment_fu, и, может быть, это будет совместимость с Rails 3.1? Каковы основные достоинства и недостатки каждого из них?

Любое понимание было бы оценено.

Я использовал как Paperclip, так и Carrierwave, и если бы я был вами, я бы пошел на Carrierwave. Это намного более гибко. Мне также нравится, что он не загромождает ваши модели с конфигурацией. Вместо этого вы можете определить classы загрузчика. Это позволяет вам легко повторно использовать, расширять и т. Д. Конфигурацию загрузки.

Вы смотрели рельсовую передачу Carrierwave? http://railscasts.com/episodes/253-carrierwave-file-uploads

Paperclip – не плохой выбор, хотя это был «лучший» выбор в течение длительного времени. Но Carrierwave определенно похоже на новое поколение;)

Я использовал CarrierWave, и после нескольких часов разочарования я перешел на Paperclip.

Вот проблемы, которые я видел с CarrierWave:

  • Вы не можете проверить размер файла. Существует статья wiki, в которой объясняется, как это сделать, но это не работает.
  • Проверки целостности не работают при использовании MiniMagick (очень удобно, если вас беспокоит использование ОЗУ). Вы можете загрузить поврежденный файл изображения, и CarrierWave сначала выдает ошибку, но в следующий раз проглотит его.
  • Вы не можете удалить исходный файл. Вы можете изменить его размер, сжать и т. Д. Существует статья wiki, объясняющая, как это сделать, но опять же она не работает.
  • Это зависит от внешних библиотек, таких как RMagick или MiniMagick. Paperclip работает непосредственно с командной строкой convert (ImageMagick). Итак, если у вас есть проблемы с Minimagick (у меня было), вы потеряете часы погружения в поиске Google. И RMagick, и Minimagick оставлены на момент написания этой статьи (я связался с автором Minimagic, без ответа).
  • Он нуждается в некоторых файлах конфигурации. Это рассматривается как преимущество, но мне не нравится иметь одиночные файлы конфигурации вокруг моего проекта только для одного драгоценного камня. Конфигурация в модели кажется мне более естественной. В любом случае, это вопрос личного вкуса.
  • Если вы обнаружите ошибку и сообщите об этом, команда разработчиков действительно отсутствует и занята. Они скажут вам, чтобы исправить ошибки самостоятельно. Это похоже на личный проект, который улучшается в свободное время. Для меня это не подходит для профессионального проекта с предельными сроками.

Я спрашивал себя:

  • Часто ли меняю размер изображения? Пример: если вы хотите, чтобы ваши пользователи меняли размер своих изображений (или гибкость по размеру по какой-либо другой причине), или очень быстрая разработка.

Да: Стрекоза

Нет: либо Carrierwave, либо Paperclip

Давайте будем гением компьютера.