如何判断 CloudFront 是否在缓存中存储了对象



我正在尝试动态清除CloudFront缓存中的某些对象。我已经设置并工作了失效,但由于我只收到 1000 个免费的失效请求,因此我想通过检查对象是否被 CloudFront 缓存来避免不必要的请求。有没有办法通过 API 做到这一点?

没有 API 调用来检查 CloudFront 缓存的内容。(实际上,缓存不止一次,因为对象可以缓存在 50+ CloudFront 边缘站点中的任何一个。

另一种方法是修改 Web 应用,以通过缓存无效化提供引用较新版本对象的内容。例如,将?version=1追加到 URL。然后,要忽略该缓存对象并访问新对象,请使用 ?version=2 。这将强制 CloudFront 再次检索对象。(虽然它没有使旧版本无效,但该版本只会在一段时间后超时。存储在缓存中的数据不收取任何费用。

使用该方法,您甚至不必使对象失效。但是,这将涉及 Web 应用中的代码更改。

最新更新