Rails 3 paperclip vs carrierwave vs dragonfly vs attachment_fu

时间:2011-09-14 16:28:19

标签: ruby-on-rails-3 paperclip carrierwave attachment-fu dragonfly-gem

我正在努力将Rails 2.3.11,Ruby 1.9.2应用程序升级到Rails 3.0.10,并且attachment_fu不再有效。

我正在寻找更改为paperclip,carrierwave或dragonfly的文件上传,或者可能是raails 3兼容,维护版本的attachment_fu。

哪些选项在性能方面最好用,维护得多好,从attachment_fu升级是多么容易,也许它会与Rails 3.1兼容?每个人的主要优点和缺点是什么?

任何见解都将受到赞赏。

3 个答案:

答案 0 :(得分:42)

我使用了Paperclip和Carrierwave,如果我是你,我会选择Carrierwave。 它更加灵活。我也喜欢这样一个事实:它不会使你的模型与配置混乱。您可以改为定义上传者类。它允许您轻松地重用,扩展您的上传配置。

您是否观看过Carrierwave轨道广播? http://railscasts.com/episodes/253-carrierwave-file-uploads

然而,回形针并不是一个糟糕的选择,它长期以来一直是“最好的”选择。但Carrierwave看起来肯定像新一代;)

答案 1 :(得分:40)

我使用过CarrierWave,经过几个小时的挫折后,我转而使用Paperclip。

以下是我在CarrierWave中遇到的问题:

  • 您无法验证文件大小。有一篇wiki文章解释了如何做,但它不起作用。
  • 使用MiniMagick时,完整性验证不起作用(如果您担心RAM使用非常方便)。您可以上传损坏的图像文件,CarrierWave最初会抛出错误,但下次会吞下它。
  • 您无法删除原始文件。您可以改为调整大小,压缩等。有一篇wiki文章解释了如何执行此操作,但它再次无效。
  • 这取决于外部库,如RMagick或MiniMagick。 Paperclip直接使用convert命令行(ImageMagick)。因此,如果您遇到Minimagick(我有)的问题,您将失去在Google搜索中潜水的时间。在撰写本文时,RMagick和Minimagick都被放弃了(我联系了Minimagic的作者,没有回复)。
  • 它需要一些配置文件。这被视为一个优势,但我不喜欢在我的项目中只为一个gem创建单个配置文件。模型中的配置对我来说似乎更自然。无论如何,这都是个人品味的问题。
  • 如果您发现了一些错误并报告错误,开发团队真的缺席并忙碌。他们会告诉你自己修复bug。这似乎是一个在业余时间得到改善的个人项目。对我来说,这对于有截止日期的专业项目是无效的。

答案 2 :(得分:3)

我会问自己:

  • 我会经常更改图像尺寸吗? 示例:如果您希望让用户更改其图片的大小(或者由于其他原因需要灵活性),或者真正快速开发。

是的:Dragonfly

否:Carrierwave或Paperclip