52

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 と互換性があるでしょうか? それぞれの主な長所と短所は何ですか?

任意の洞察をいただければ幸いです。

4

3 に答える 3

42

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

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

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

于 2011-09-14T16:37:40.473 に答える
40

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

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

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

私は自問します:

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

はい: トンボ

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

于 2013-04-04T18:18:47.840 に答える