S3上传不应该在应用程序之外查看

时间:2016-12-23 06:17:42

标签: postgresql ruby-on-rails-4 amazon-s3 carrierwave fog

我有一个用户可以上传文件的应用程序。问题是,如果我复制文档的网址,我可以从任何其他浏览器查看该文档,我不需要登录,甚至无需在浏览器中打开我的应用程序。我想设置S3,以便只有我的应用程序的用户才能查看文档,这些用户也应该登录。

1 个答案:

答案 0 :(得分:0)

在上传器文件中执行以下操作,

storage :fog
def initialize(*)
    super
    self.fog_credentials = {
      :provider               => 'AWS',              # required
      :aws_access_key_id      => 'your_access_key',     # required
      :aws_secret_access_key  => 'your_secret_key',    # required
    }
    self.fog_directory = "your_directory"
    self.fog_public = false
    self.fog_authenticated_url_expiration = 300
  end

现在生成的url将在指定的持续时间内过期。此外,还将根据某些令牌eveytime生成URL。现在,您可以限制用户生成文件URL。