【问题标题】:Need assistance choosing a image management gem在选择图像管理 gem 时需要帮助
【发布时间】:2013-05-03 01:52:54
【问题描述】:

我有兴趣构建一个基于 Rails 的系统来处理大量照片的显示和组织。这有点像 Flickr,但更小。每张照片都有与之关联的元数据。照片将显示在可选列表和网格视图中。能够在需要时加载图像会很好(因为这可能会加快速度)。

目前,我的数据库有一个测试版本,通过从 assets/images 目录加载图像来工作,但在显示多张图像(200-600 张图像)时它开始运行缓慢。这是由于我的视图设置方式。我正在使用直接循环在列表和网格布局中显示图像。

我还从全尺寸源图像手动调整了缩略图和中等尺寸图像的大小。我正在研究其他调整大小的方法。任何建议在这里也受到赞赏。

由于我不熟悉以这种方式处理图像,有人可以根据设计和实施 Flickr 之类的经验为我指明一个方向吗?

我正在研究以下工具:

  1. 回形针
  2. attachment_fu
  3. 载波

【问题讨论】:

标签: ruby-on-rails image image-uploading


【解决方案1】:

我会选择Carrierwave。它非常灵活并且有很多有用的策略。它在 Uploader 类中生成,并具有所有漂亮且不言自明的功能,例如自动生成缩略图(由您指定)、黑名单、格式化图像、大小限制等;您可以使用它。

这个由 Ryan Bates 编写的 Railscast - http://railscasts.com/episodes/253-carrierwave-file-uploads 非常有用,如果您还没有看过的话。

【讨论】:

    【解决方案2】:

    Paperclip 和 CarrierWave 是完全适合这项工作的工具,您选择哪种工具取决于个人喜好。他们都有大量的用户和积极的、持续的发展。不同之处在于您是更愿意在单独的类中定义文件上传规则(CarrierWave),还是在模型中内联定义它们(Paperclip)。

    我更喜欢 CarrierWave,但 based on usage 显然很多人不这么认为。

    请注意,对于 200-600 张图像的慢速视图,这两个 gem 都不会做任何事情。这些 gem 仅用于处理图像上传,除此之外对您没有任何帮助。

    还请注意,Rails 在处理文件上传和文件下载方面确实非常糟糕,您应该尽可能避免这种情况,让其他服务(cdn、您的 Web 服务器、s3 等)为您处理这些。核心问题是,如果您使用 Rails 处理文件传输,则整个 Web 应用程序进程在传输期间都很忙。 (有关该主题的相关讨论,请参见:Best Ruby on Rails Architecture for Image Heavy App)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      相关资源
      最近更新 更多