2012-03-07 45 views
1

我在S3上用回形针生成过期的签名URI。然而,在每次请求时,我都会生成一个不理想的新URI,它会强制浏览器在每次页面刷新时从S3下载一组新的图像。用回形针和导轨缓存签署的S3 URI

我想要做的是缓存生成的URI的时间少于在S3上到期的时间。有没有人做过这样的事情,并可以提出解决方案。

我在Heroku上部署如果提出一个解决方案(或没有)

回答

5

有一个简单的方法来做到这一点是相当整齐。回形针expiring_url方法需要一个明确的时间。因此,我们可以这样做

def s3_expiry 
     Time.zone.now.beginning_of_day.since 25.hours 
    end 

,当我们需要一个即将到期的URL

user.avatar.expiring_url(s3_expiry, :thumb) 

诀窍是,图像在当天+ 1小时结束对产生的任何URL在S3过期直到一天结束。新的URL在每晚12:00午夜生成。这可以防止图片在网站上使用超过25小时,这应该足以防止猖獗的热链接,但仍然足以让浏览器缓存图片一天