保护s3上的文件,只从app中的链接下载文件

时间:2013-03-24 04:44:03

标签: ruby-on-rails ruby amazon-s3 fog

在我的应用中,PDF是使用wicked_pdf生成的,并使用fog gem上传到Amazon S3。

有效!

我目前的设置是将文件放在SecureRandom.urlsafe_base64(40)生成的文件夹中。很难猜到。通过默默无闻的安全。然后我将public_url保存在数据库中。

但是,我想保护文件,以便只能从应用程序中的链接下载它们。怎么办呢?

1 个答案:

答案 0 :(得分:3)

将Fog公共凭证设置为false,如果您使用的是载波,则很容易 @report.report_attachment.url还有一种方式

像这样创建控制器动作

def download_report
    @report = Report.find(params[:id])

    # url to access private files on S3 expire in 10 sec
    redirect_to @report.report_attachment.expiring_url(10)
  end