52

我正在将 Rails 2.3.11、Ruby 1.9.2 应用程序升级到 Rails 3.0.10,但 attachment_fu 不再有效。

我正在考虑将文件上传更改为回形针、carrierwave 或蜻蜓,或者可能是兼容 Rails 3 的、维护的附件_fu 版本。

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

任何见解将不胜感激。

4

3 回答 3

42

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

你看过 Carrierwave railscast 吗?http://railscasts.com/episodes/253-carrierwave-file-uploads

回形针虽然不是一个坏选择,但长期以来它一直是“最佳”选择。但是 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 的作者,没有回应)。
  • 它需要一些配置文件。这被视为一种优势,但我不喜欢在我的项目中只为一个 gem 使用单个配置文件。模型中的配置对我来说似乎更自然。无论如何,这是个人品味的问题。
  • 如果你发现一些 bug 并报告它,开发团队真的很忙。他们会告诉你自己修复错误。这似乎是一个在业余时间改进的个人项目。对我来说,它不适用于有截止日期的专业项目。
于 2012-02-27T22:47:12.200 回答
3

我会问自己:

  • 我会经常更改图像大小吗?例子:如果你想让你的用户改变他们图片的大小(或者你出于其他原因需要大小的灵活性),或者真正快速的开发。

是:蜻蜓

否:Carrierwave 或 Paperclip

于 2013-04-04T18:18:47.840 回答