在CloudFront中,当我使用通配符*
运算符时,将消耗尽可能多的字符(贪婪)或少量(非贪婪)?
在正则表达式中存在差异,但我对CloudFront不确定。
特别是如果我有
*c_*a*
我意识到这将匹配以下文件名:
ddddc_1111c_ab.png
但会匹配d
还是1
?
答案 0 :(得分:2)
贪婪不是一个因素,因为唯一必须回答的问题是“这种模式是否符合路径?”如果匹配,则匹配;只有当它不匹配时,评估才会在列表中继续。这是一个有序的“第一场比赛”,而不是“最佳比赛”。
当CloudFront收到最终用户请求时,会将请求的路径与路径模式按顺序进行比较,其中缓存行为在分发中列出。 第一个匹配确定将哪个缓存行为应用于该请求。
另请注意,在使用AWS控制台时,可以使用上移/下移按钮手动重新排列缓存行为的顺序(确定“首次匹配”的含义),然后保存更改并等待分发的状态从In Progress
更改回Deployed
- 但在更改此设置后,您可能需要对*
执行缓存失效,以便任何错误的缓存(因为模式未按预期配置匹配)将不会继续缓存和提供。