it-swarm.cn

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的文件上传,或者可能是raails 3兼容,维护版本的attachment_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的作者,没有回复)。
  • 它需要一些配置文件。这被视为一个优势,但我不喜欢在我的项目中只为一个gem创建单个配置文件。模型中的配置对我来说似乎更自然。无论如何,这是个人品味的问题。
  • 如果你发现了一些错误并报告它,开发团队真的缺席并且很忙。他们会告诉你自己修复bug。这似乎是一个在业余时间得到改善的个人项目。对我来说,它对于有截止日期的专业项目无效。
40
David Morales

我会问自己:

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

是的:蜻蜓

不:Carrierwave或Paperclip

3
montrealmike