gpt4 book ai didi

ruby-on-rails - 载波或蜻蜓

转载 作者:数据小太阳 更新时间:2023-10-29 06:26:54 25 4
gpt4 key购买 nike

我一直在研究 rails 文件上传工具,对我来说最吸引人和最有趣的是 carrierwave 和 dragonfly。

环顾四周,carrierwave 似乎采用更传统的风格,您可以在保存时处理文件,而 dragonfly 是中间件,因此它允许您即时处理。

我想知道是否有人提到了性能测试或任何比较两者的测试。

此外,我只是想知道人们对两者的看法是什么,他们更喜欢哪个,当然还有他们为什么喜欢它。

最佳答案

取决于设置。正如 Senthil 所写,只要前面有缓存代理,Dragonfly 就没问题。

但是,如果您使用内置的 Rails 缓存,Carrierwave 的性能会更好,因为文件无需任何处理即可加载。如果你不做任何处理,那也没关系。

以下是我在使用 Mongomapper 的项目中考虑图像时的总结:

载波:

  • 优点
    • 在上传时生成拇指(节省 CPU 时间)
    • 可以直接使用来自静态/缓存文档的文件
    • 不需要任何缓存前端
    • 支持各种存储后端(S3、Cloudfiles、GridFS、普通文件),可根据需要轻松扩展到新的存储类型。
  • 缺点
    • 在上传时生成拇指(很难生成新的拇指大小)
    • 本身不支持 mongomapper
    • 为生成的每个文件/缩略图使用存储空间。如果您使用普通文件存储,您可能会用完 inode!

蜻蜓:

  • 优点
    • 应该与 mongomapper 一起工作,因为它只扩展了 ActiveModel
    • 动态生成缩略图(更容易创建新布局/缩略图大小)
    • 只存储了一个文件!节省空间:)
  • 缺点
    • 如果你没有缓存代理、rack::cache 或类似的东西,每次请求都会占用 CPU。
    • 如果需要,无法将缩略图作为文件访问。

我最后两个都用了。

future 的愿望是让carrierwave再次支持MongoMapper。在各种情况下使用两者后,我发现 MongoMapper(rails3 分支)中的功能始终有效,并且很容易使用插件进行扩展。目前还不能对 Mongoid 说同样的话,但这可能会改变。

关于ruby-on-rails - 载波或蜻蜓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com