我想测试并看到我的TTL = 0确实有效
我有什么:
安装在我的redhat目录中的S3存储桶。所以当我从shell编辑一个简单的txt文件时,我可以在aws控制台桶管理器中打开它并查看该文件。此外,我创建了云端分发,因此我可以从云端链接打开txt文件
测试:
我使用telnet编辑txt文件,然后在S3存储区中从aws控制台打开它,我看到文件已更改,但是当我在cloudfront链接上打开文件时,它没有改变。这意味着TTL = 0不起作用。
如何验证TTL = 0有效?它设置正确吗?创建分发后,我找不到再次编辑TTL的位置。
由于
答案 0 :(得分:4)
引用AWS:
请注意,我们的默认行为不会改变;如果未设置缓存控制标头,则每个边缘位置将继续使用24小时的有效期,然后检查该文件的更改。您还可以继续使用Amazon CloudFront的无效功能,使文件比该文件上设置的TTL更早到期。
您可能无法正确设置缓存控件。确认是Enable S3 Bucket Logging的一种方法 - 只要S3 Bucket中有新的HTTP GET,就会出现新文件,即使它们来自CloudFront。
您还可以使用curl(或s3curl)直接测试S3,以便正确跟踪其标题。
我的建议是,每当您上传新内容时,都会强制CloudFront无效。如果您使用的是s3fs等工具,那么inotify / icron可能会帮助您
(免责声明:我完全不喜欢将文件系统映射到S3的整个想法。它们是完全不同的工具,你可能会得到'泄漏的抽象')
答案 1 :(得分:3)
您很可能不会从S3发送任何TTL标头。 CloudFront将在源文件中查找TTL标头,如果找不到任何内容,则默认为24小时。
您可以设置存储桶策略或使用S3浏览器等工具自动设置标头。 http://s3browser.com/automatically-apply-http-headers.php
如果您只想测试,我会按照以下步骤操作。
如果您每月进行大量编辑,则可能会向每个请求发送对CloudFront的无效调用。加上无效宣传需要几分钟(有时是20分钟或更长时间),这意味着您永远无法立即更改内容。