我只是一个希望加入社交网络大军的普通人。我想知道应该为我的应用程序的用户使用哪种照片上传/调整大小的宝石。如果你能解释一下原因就更好了。
我只是一个希望加入社交网络大军的普通人。我想知道应该为我的应用程序的用户使用哪种照片上传/调整大小的宝石。如果你能解释一下原因就更好了。
Carrierwave 对外部支持良好,如DataMapper、Mongoid、Sequel,甚至可以与第三方图片管理工具如cloudinary一起使用。该解决方案似乎最为完整,覆盖范围广泛,但对于我个人而言,需要处理的代码量更大,显得更加混乱。它由丰富社区的许多附加组件活跃维护,以支持许多功能,并提供从其他附件解决方案(如paperclip)进行迁移的指南。目前有约3-4个积极的贡献者/维护者。
Paperclip 来自thoughtbot, 应该是一个经过精心规划、功能齐全、易于处理附件的解决方案。它利用了许多内置函数,使在Rail环境下的体验更轻松。Paperclip更适合使用activerecord和其它替代方案的有机Rails环境。对于初学Rails开发人员来说,Paperclip更易于操作,并且还具有高级开发人员的高级功能。目前有约2-3个积极的维护者。从github图表来看,最近几个月paperclip的贡献相对较少,希望它能与carrierwave平起平坐(通常越多的维护者意味着更多的代码)。
Dragonfly 是基于Rack的附件解决方案。它支持其他框架,而不仅仅是Rails,并且有几个外部服务支持插件,但正如从其github页面中看到的那样,仍然缺少很多功能。这可能是因为它只有1个活跃的维护者,并且自2012年4月以来没有提交过更新。如果它不能得到真正的推动,我认为它的生命力会不久了。尤其是随着Rail 4的即将发布。
在技术领域,各种解决方案都有其优缺点,并且每个解决方案都最适合不同的开发者。
看看以下列表,了解人们对每个解决方案的看法,并决定它们提出的问题是否涉及您:
Rails 3 paperclip vs carrierwave vs dragonfly vs attachment_fu
Attachment_fu or Paperclip for Rails3
回答您的问题-carrierwave和paperclip都可以上传和调整图片大小。
至于您在评论中提出的问题,我使用的是paperclip,但由于carrierwave具有从paperclip迁移的功能,如果它不再适合我的需求,我可能会切换到carrierwave。目前,它还能满足我的需求。
选择最好的方法是选择一种,尝试一下,然后自己决定。