web-dev-qa-db-ja.com

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互換性のある、attached_fuのメンテナンスバージョンです。

これらのオプションのうち、パフォーマンス、メンテナンスのしやすさ、attachment_fuからのアップグレードの容易さ、および多分Rails 3.1と互換性がありますか?それぞれの主な長所と短所は何ですか?

どんな洞察もありがたいです。

52
keithepley

PaperclipとCarrierwaveの両方を使用しました。私があなただったら、Carrierwaveに行きます。はるかに柔軟です。また、構成によってモデルが乱雑にならないという事実も気に入っています。代わりにアップローダークラスを定義できます。アップロード設定を簡単に再利用、拡張することができます。

Carrierwaveのレールキャストを見ましたか? http://railscasts.com/episodes/253-carrierwave-file-uploads

ペーパークリップは悪い選択ではありませんが、長い間「最良の」選択でした。しかしCarrierwaveは間違いなく新世代のようです;)

42
Robin

私はCarrierWaveを使用しましたが、数時間のフラストレーションの後、Paperclipに切り替えています。

CarrierWaveで見た問題は次のとおりです。

  • ファイルサイズを検証できません。方法を説明するWiki記事がありますが、機能しません。
  • MiniMagickを使用している場合、整合性検証は機能しません(RAM使用法が心配な場合に非常に便利です。破損した画像ファイルをアップロードすると、CarrierWaveは最初にエラーをスローしますが、それを飲み込みます。
  • 元のファイルを削除することはできません。代わりに、サイズを変更したり、圧縮したりすることができます。その方法を説明するwiki記事がありますが、やはり機能しません。
  • RMagickやMiniMagickなどの外部ライブラリに依存します。 Paperclipは、convertコマンドライン(ImageMagick)で直接機能します。そのため、Minimagick(私が持っていた)に問題がある場合、Google検索でのダイビングに何時間も費やすことになります。この記事の執筆時点では、RMagickとMinimagickはどちらも放棄されています(Minimagicの作者に連絡しましたが、返事はありません)。
  • いくつかの構成ファイルが必要です。これは利点と見なされますが、1つのgemだけのためにプロジェクトの周りに単一の構成ファイルを置くのは好きではありません。モデルの構成は私にとってより自然なようです。とにかくこれは個人的な好みの問題です。
  • バグを見つけて報告した場合、開発チームは本当に不在で忙しいです。バグを自分で修正するように指示されます。空き時間に改善されている個人的なプロジェクトのようです。私にとっては、期限のあるプロのプロジェクトには有効ではありません。
40
David Morales

私は自問します:

  • 画像サイズを頻繁に変更しますか?例:ユーザーが写真のサイズを変更できるようにする場合(または他の理由でサイズに柔軟性が必要な場合)、または非常に高速な開発。

はい:トンボ

いいえ:CarrierwaveまたはPaperclipのいずれか

3
montrealmike