【问题标题】:I have a static website hosted on S3 with Cloudfront and I can't get TTL to work我有一个使用 Cloudfront 在 S3 上托管的静态网站,但我无法让 TTL 工作
【发布时间】:2018-05-02 14:27:37
【问题描述】:

我已将 TTL 最大值、最小值和默认值全部设置为 0(在“默认缓存行为设置”页面上),认为这意味着当我将名为 events.html 的新文件上传到 S3 时,它将替换旧的 events.html 页面,但几个小时后我仍然看到缓存的版本。

我只是想更新一些网页上的内容。

【问题讨论】:

  • 我不熟悉您正在处理的具体设置,但可能是设置“零”意味着根本不存在 TTL(例如不刷新缓存)。尝试将其设置为:60(这意味着 1 分钟),看看它是否有效。
  • 本题是针对编程(代码)和程序员工具相关的题。这与这两件事有什么关系?
  • 您是否尝试过硬刷新?也许浏览器缓存是问题

标签: amazon-s3 amazon-cloudfront


【解决方案1】:

如果您想通过 s3 中的新更新使缓存无效,您需要使用 putobject 事件显式执行此操作。您可以调用 lambda 使 CF 缓存失效。

这里是示例:https://blog.miguelangelnieto.net/posts/Automatic_Cloudfront_invalidation_with_Amazon_Lambda.html

请注意,使用上述方法,如果您在一个月内刷新缓存超过 1000 个文件,则需要支付额外的失效费用。参考 CF 定价。

同样使用 TTL,你可以这样做,但它会在 TTL 值过去后发生,你必须清除浏览器缓存才能查看它。

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 2019-06-12
    • 2012-11-07
    • 2015-11-22
    • 2021-06-12
    • 2021-01-30
    • 2017-05-14
    • 2021-03-16
    相关资源
    最近更新 更多