我使用S3来存储一堆图像和CloudFront来缓存它们。我得到的问题是我的图像没有正确缓存。如何正确设置Amazon CloudFront缓存
如果我通过CloudFront链接检查图像的标题,它将在第一次尝试中显示MISS,并在所有后续尝试中显示HIT。这很正常,但如果我关闭浏览器,请离开几个小时再试一次,它会显示一个MISS。因此表明它只能在短时间内缓存。
下面是对CDN的样本图像:http://d711ds9nsj32q.cloudfront.net/static/8e1f8567e229e24e0782ed_1e994b9dc56ba092ecd2_5.jpg
一个奇怪的现象是,如果你试图用web-sniffer.net嗅出头,你会看到一个MISS每一次。尽管缓存控制是public, max-age=315360000
,并且它将在10年后过期。
在cloudfront上缓存10年的正确方法是什么?是否有任何额外的标题我错过了?
编辑:这里的对比是the same image imgur。他们使用cloudflare,但我看到的行为是正确的。一旦缓存,我再也不会从我的任何电脑或附近的地点再次发现任何错过。除了一些(不重要的)区别之外,我的标题和他们的标题都是相似的。任何帮助表示赞赏。
感谢您的帮助。我不认为驱逐正在发生,因为我正在测试相对较新的文件。看起来CF在做这样的事情之前至少要等一段时间(几个月?)。 **另外**:如果你尝试[这个来自Squre的图像](https://dl6rt3mwcjzxg.cloudfront.net/assets/redesign/home/hero.large-2df3c88fdbe4801dcd2704ccb1fcc162.jpg)在web-sniffer上,你会发现它是每次HIT。似乎我的标题和他们的标题是相似的,并且都在CloudFront上。 – steve
你说得对,我正在通过cf提供的自己的文件上尝试它,并注册了一个命中。你能发布源对象的URL吗? –
Alex,这里是[source url](http://flexurl.com/rtlu)。如果你需要,我可以给你更多的信息。当我上传文件时,我将“Cache-Control”和“Expires”设置为10年。谢谢。 – steve