2012-12-24 36 views
4

如何限制对S3中:original样式文件的任何访问,但请保留访问存储桶中其余样式文件夹的权限?限制访问回形针:S3中的原始文件

我看到了有关如何限制所有访问然后检查模型属性的实现。我只是想限制访问:original风格

我没有在回形针通知this line,我只是不知道如何使用(如果可能)

回答

1

我找(我想,没有测试它尚未)的答案可以在这里找到

http://rdoc.info/github/thoughtbot/paperclip/Paperclip/Storage/S3

s3_permissions: This is a String that should be one of the "canned" access policies that S3 provides (more information can be found here: docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAccessPolicy.html) The default for Paperclip is :public_read. 
You can set permission on a per style bases by doing the following: 
:s3_permissions => { 
    :original => :private 
} 
Or globaly: 
:s3_permissions => :private 
1

您可以通过一个操作访问文件限制文件一个控制器。这样你就可以控制用户可以访问哪些文件,哪些不能访问。

如果你只是做一个私人s3桶,这不会帮助你。因为具有有效密钥的用户可以访问存储桶中的任何文件。如果你真的有需要保护的文件,你只能查看方法(我认为):

  • 限制对存储桶的访问并通过控制器的操作提供文件(没有真正的方法以解决此问题)
  • 重命名特定文件不容易预测(例如32个或更多字符的数字和字母)。这是不干简单的实现,你可以直接从仍然可以提供文件服务S3
  • 将文件保存在其他地方(也许在其他的S3存储桶),所以没有人能预测他们

重命名,你可以使用文件这个计算器的问题:Paperclip renaming files after they're saved

+0

如果通过url直接访问文件,这将无济于事 –

+0

如果您确实想要控制对文件的访问,则必须停止直接访问。你用亚马逊s3吗? – Fa11enAngel

+0

是S3 s3,忘记添加到这个问题 –