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