在Ruby on Rails中模糊上传的文档URL

时间:2013-05-23 16:46:15

标签: ruby-on-rails ruby-on-rails-3 carrierwave

用户使用carrierwave gem将私人文档上传到我的网站。默认情况下,carrierwave根据数据库ID访问图像,这使得其他人很容易猜到他们不应该访问的文档的URL。

我想通过伪造网址来使文件更安全,以便通过猜测网址来访问文档。

我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

您可以使用UUID's作为CarrierWave中文件名的标识,由于UUIDs的性质和概念,这将使猜测文件名几乎不可能。

答案 1 :(得分:-1)

只需在您的上传器类中重新定义store_dir

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{rand 500}_#{model.id}"
  end

好吧,当然不要在实际应用程序中使用rand 500