如何彻底清除 Amazon CloudFront 缓存?

Posted

技术标签:

【中文标题】如何彻底清除 Amazon CloudFront 缓存?【英文标题】:How to clear Amazon CloudFront Cache completely? 【发布时间】:2014-10-06 21:09:41 【问题描述】:

我对我的源服务器进行了一些更改,它现在提供来自同一 url 的不同数据。

我尝试通过在 CF UI 中执行以下无效操作来完全清除缓存:

但这没有用。如何一次性彻底清除 Amazon CloudFront 缓存?

【问题讨论】:

【参考方案1】:

CloudFront 现在支持通配符或完全分配失效。您需要执行以下操作之一。

使每个已更改的对象无效 无效 /* 对您的对象进行版本化,使其被视为新对象(即重命名或查询字符串)

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidating-objects-console

【讨论】:

【参考方案2】:

您需要使用/* 而不是/

此外,如果您需要经常执行此操作,您可以使用 AWS CLI 执行此操作。

aws cloudfront create-invalidation --distribution-id=YOUR_DISTRIBUTION_ID --paths "/*"

编辑:感谢@speckledcarp,您在使用CLI 时需要使用"/*"(带引号)。

【讨论】:

我不得不在命令行中的通配符路径周围加上引号 @speckledcarp,你的意思是使用"/*"吗?使用 /* 对我有用,但还是谢谢。 是的,我就是这个意思。如果没有引号,它会获取当前目录中的文件列表,并将它们作为单独的失效路径发送(即 - 通配符在本地评估)。我从不同的文件夹运行命令,所以直到我使用"/*" @speckledcarp 我不得不再次使用这个命令,你是对的!使用 CLI 时,引号是非常必要的。谢谢! 不需要做任何事情来设置 preview.cloudfront ... 工作正常【参考方案3】:

根据AWS documentation你需要使用/*而不是/

【讨论】:

以上是关于如何彻底清除 Amazon CloudFront 缓存?的主要内容,如果未能解决你的问题,请参考以下文章

Amazon CloudFront:如何获取每个分发的每月成本明细?

如何使用预设策略加密 Amazon CloudFront 签名以进行私有内容访问

Amazon CloudFront 与 Limelight 或 Akamai 相比如何?

如何使用 Heroku / Amazon cloudfront / route 53 重定向

ASP.Net 中的 Amazon CloudFront 失效

为 Amazon CloudFront 创建签名 URL