用于Paperclip上传数据的amazon S3隐私

时间:2017-05-08 18:25:58

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

我正在使用Amazon S3作为我使用Paperclip上传的user图片的托管服务。

虽然我很难理解这些文件的私密程度。

我对user图像并不感到困扰,因为它们旨在显示在公开的个人资料中。虽然将来某些PDF文件将专用于特定的users,但只能通过这些users来查看

当然,我的应用程序将返回用户有权查看的文件,但是当查看图像的HTTP地址并调整它们时,会传递其他一些图像:

http://mywebsitename.s3-eu-west-1.amazonaws.com/photographephotos/images/000/000/013/big/CopyrightMM.JPG?1492617xxx

例如在上面的地址中,当我将数字“13”更改为另一个数字时,我可以看到不同的图像......

我不确定我做错了什么,但似乎没有添加到图像地址的唯一令牌,就像在Amazon S3上的临时会话一样,允许单个用户在短时间内看到此图像...除非重新加载页面,并且另一个标记附加到我的图像...

关于设置,我创建了一个IAM用户并授予对应用程序存储桶的完全访问权限,然后使用附加到该IAM用户的S3凭证设置Paperclip。

1 个答案:

答案 0 :(得分:1)

在您的模型中使用:

 has_attached_file :file, s3_permissions: :private

要检索文件URL,请使用:

@model.file.expiring_url(10)