bra*_*ing 1 ruby-on-rails heroku amazon-s3 paperclip
我在S3上使用paperclip生成过期的签名URI.但是,在每个请求中,我生成一个不理想的新URI,它会强制浏览器在每次刷新页面时从S3下载一组新图像.
我想要做的是将生成的URI缓存的时间少于它们在S3上过期的时间.有没有人之前做过这样的事情,可以建议一个解决方案.
如果这表明解决方案(或不是),我正在heroku上部署
有一种简单的方法可以做到这一点非常整洁.回形针expiring_url方法需要一个明确的时间.所以我们可以做点什么
def s3_expiry
Time.zone.now.beginning_of_day.since 25.hours
end
Run Code Online (Sandbox Code Playgroud)
当我们需要一个过期的URL
user.avatar.expiring_url(s3_expiry, :thumb)
Run Code Online (Sandbox Code Playgroud)
诀窍是图像在一天结束时在S3中过期+ 1小时,直到当天结束时生成的任何URL.新网址每晚午夜12点生成.这可以防止图像在网站外使用超过25小时,这足以防止猖獗的热链接,但仍足以让浏览器将图像缓存一天