如何彻底清除 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 重定向