Rails paperclip + aws / s3私有访问问题

时间:2010-12-15 10:07:10

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

我正在创建一个具有以下功能的Rails应用程序:

  • 用户可以保存保存到S3的图像。
  • 用户可以编写文本并将其保存到数据库中。
  • 用户可以使用保存的图像以文本形式实现。

与S3的所有通信都设置为私有,因此只有注册用户才能访问图像和文档。我把expiring_url(3600)(1小时,仅用于测试)。 当我选择一个图像并将其保存到文本中时,会创建一个带有文本html的数据库记录,其中包含图像的url和他过期的数据。

当我稍后加载此文本时问题会出现:图像将不再可见,因为密钥已过期。

我该如何解决这个问题? 一个解决方案是延长过期时间,但我认为这不是要走的路......

提前致谢,

的Wouter

1 个答案:

答案 0 :(得分:1)

我同意延长过期时间真的不是要走的路。另一种方法是始终将您的图像URL指向您自己的应用程序控制器之一,该控制器动态生成经过身份验证的URL,然后将用户请求重定向到该URL。

我找到的最佳指南是thewebfellas.com/blog/2009/8/29/protecting-your-paperclip-downloads

它涵盖了很多不同的场景,但我想您有兴趣阅读“扩展到Amazon S3”一节