【问题标题】:MongoDB, Carrierwave, GridFS and prevention of files' duplicationMongoDB、Carrierwave、GridFS和防止文件重复
【发布时间】:2010-12-28 13:49:53
【问题描述】:

我正在处理 Mongoid、carrierwave 和 gridFS 来存储我的上传。

例如,我有一个模型文章,包含一个文件上传(一张图片)。

class Article
  include Mongoid::Document
  field :title, :type => String
  field :content, :type => String
  mount_uploader :asset, AssetUploader
end

但我想只存储一次文件,以防我为不同的文章上传多次相同的文件。

我看到 GridFS 有一个 MD5 校验和。

防止相同文件重复的最佳方法是什么?

编辑: 事实上,在我的网站上,用户可以上传文件。 但是为了避免存储多个相同的文件,我只想通过关联表建立链接。没什么难的,但是如何做到这一点,下面指定的库。 如果你有任何想法。

谢谢

【问题讨论】:

    标签: upload mongodb ruby-on-rails-3 mongoid gridfs


    【解决方案1】:

    根据您的应用程序,重复数据删除很可能是一个有价值的目标,但我解决这个问题的第一反应是扭转它——为什么您会期待大量重复上传?您能否降低这种可能性,以便用户不必花费不必要的时间上传,您也不必花费不必要的精力来处理重复检查?

    如果您创建一个 Asset 模型并将上传器附加到该模型,然后添加一个 Article references_one :asset,并让用户在创建新文章或上传新文章时从现有资源中进行选择,会怎样?

    如果您给出一个简化的示例,我可能不了解您的应用程序域(如果是,请进一步解释),而且重复仍然可能是一个真正的问题,但我首先要问为什么重要的重复是预期,然后在花费大量精力解决问题之前收集一些数据,了解它在您的应用和数据集中确实存在多少问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-19
      • 2011-09-18
      • 2019-03-29
      • 2012-06-29
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      相关资源
      最近更新 更多