Rails 3 paperclip vs carrierwave vs dragonfly vs attachment_fu

kei*_*ley 52 attachment-fu paperclip ruby-on-rails-3 carrierwave 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兼容?每个人的主要优点和缺点是什么?

任何见解将不胜感激.

Rob*_*bin 42

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

你看过Carrierwave的轨道广播吗?http://railscasts.com/episodes/253-carrierwave-file-uploads

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

  • 谢谢!我只是看了一个railscast,还有一个回形针.我想我会和Carrierwave一起去; 这似乎是大多数人所说的.现在从attachment_fu升级有趣的部分...... (3认同)

Dav*_*les 40

我使用过CarrierWave,经过几个小时的挫折,我正在转向Paperclip.

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

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

  • 这些缺点仍然相关吗? (9认同)
  • 是的,回形针正在卷土重来,而且直接与ImageMagick一起工作的事实是一大优点 (5认同)
  • 第一个Minimagick被选中了.其次,虽然Paperclip直接与imageMagick一起工作,但它也很难直接与它进行交互.我刚刚使用Paperclip转向CarrierWave,因为Paperclip为您做了很多,并且在您需要时很难自定义.更不用说Paperclip代码库正如他们所说的那样"臃肿",而载波更加精简,这很可能是载波浪费的直接结果,而纸夹则试图为你做更多事情. (2认同)