7

我们将图像托管在 Amazon S3 上,并通过 Amazon Cloudfront 提供服务。我们想减少我们的带宽费用。我们相信我们有相当多的带宽被盗,并希望开始使用签名 URL 来防止这种情况。但是,我们必须平衡这一点,因为每次我们发送一个新的签名 url,它都会使浏览器缓存的图像无效。

我们目前的计划是生成一个有效期为两个月的签名网址,然后在本地缓存并服务一个月,然后再生成一个新的签名网址。这将允许浏览器缓存图像更长时间。但是,这也意味着任何人都可以在长达两个月的时间内为图像占用带宽。

有什么方法可以让链接更快过期,但浏览器是否会继续缓存该图像?我知道当 url 为新的时间戳而辞职时,图像的 etag 和 If-Modified-Since 不会改变,但是浏览器不再知道在标头中发送这些值,因为就它而言,这是一个新网址。有没有办法解决这个问题?

4

2 回答 2

2

您是否测量过有多少带宽被盗?即,检查您为您自己的站点没有设置引荐来源网址字段的图像获得了多少请求。

为了获得最佳缓存,我们建议缓存 10 年,所以 2 个月听起来有点短。

于 2010-07-16T22:50:53.943 回答
0

需要多少缓存在很大程度上取决于您网站上访问者的访问模式。对于大多数网站,我会说提供一个月的缓存应该足以获得有效的缓存。

在为此付出大量努力之前,您应该对水蛭的实际成本进行具体评估,并将其与解决问题的所有成本相抵消。

顺便说一句:在某些情况下,为图像添加水印也非常有效。

于 2011-04-07T18:42:41.827 回答