使用自定义源和查询字符串使 CloudFront 失效

问题描述 投票:0回答:2

我在使用查询字符串数据使 CloudFront 缓存内容失效时遇到问题。

例如,假设我试图使以下内容无效:

http://d114hh0cykwyb0.cloudfront.net/imagesizer.php?h=80&src=/images/foo.jpg

我使用AWS SDK发送失效路径,即: /imagesizer.php?h=80&src=/images/foo.jpg

然后我将进入 AWS 控制台 -> CloudFront -> 分发设置 -> 失效

我看到了我的新无效请求。如果我看到它的“详细信息”,对象路径会显示: /imagesizer.php%3Fh%3D80%26src%3D/images/foo.jpg

因此路径已被编码。但在无效宣告结束后, http://d114hh0cykwyb0.cloudfront.net/imagesizer.php?h=80&src=/images/foo.jpg 保持不变。

我还尝试使用以下路径在 AWS 控制台中使用“创建失效”: /imagesizer.php?h=80&src=/images/foo.jpg

但我收到 XML 解析错误(因为 URL 未编码)。

以前有人处理过此类问题吗?你找到解决办法了吗?

谢谢!

string cdn amazon-cloudfront
2个回答
0
投票

如今答案是肯定的 - CloudFront 确实支持转发查询字符串的失效。以下内容来自CloudFront 开发人员指南 - 失效

转发查询字符串

如果您将 CloudFront 配置为将查询字符串转发到源,则在使文件失效时必须包含查询字符串,如下所示 如以下示例所示:

    /images/image.jpg?parameter1=a

    /images/image.jpg?parameter1=b

如果客户端请求包含同一文件的五个不同查询字符串,您可以使该文件五次无效,一次为 每个查询字符串,或者您可以在失效中使用 * 通配符 路径,如下例所示:

/images/image.jpg*

-5
投票

使用失效的一个非常简单的方法是使用第三方工具。我个人使用 CloudBerry - > http://www.cloudberrylab.com/

© www.soinside.com 2019 - 2024. All rights reserved.