我在一个使用亚马逊/ AWS CloudFront的大型求职网站工作。
我是一个广告设计师,并为一些客户定制广告。
假设我上传了一个名为test.jpg的标题映像,并将一个链接发送到客户机以供审批。然后客户端请求修改,所以我修改test.jpg并重新上传它,覆盖以前的版本(所以,相同的文件路径)。
我希望CloudFront注意到该文件已被修改,并为新版本服务。
然而,实际发生的情况是,旧版本显示在我的浏览器(Chrome)和客户端浏览器中。
显示新版本的唯一方法是要么在私有窗口中打开它,要么使用完全不同的浏览器。
最初使用什么浏览器似乎并不重要。如果我从Chrome、Firefox或Edge开始,我会一直看到旧的test.jpg,直到我使用一个专用窗口或切换到另一个浏览器。
就我个人而言,我可以忍受。然而,客户端根本不理解“在私有窗口中尝试它”的指令。结果,每周都有数十起投诉,说我没有修改他们的广告。我正在发送截图,目前显示我有。
什么(阿帕奇?)必须更改设置,使CloudFront在修改内容时为新版本的内容提供服务?
数据1- test.jpg的响应头(第一次上载)
Request URL: https://www.redacted.com/images/test.jpg
Request Method: GET
Status Code: 200 OK
Remote Address: 52.85.70.211:443
Referrer Policy: no-referrer-when-downgrade
Accept-Ranges: bytes
Cache-Control: max-age=3600, public
Connection: keep-alive
Content-Length: 128483
Content-Type: image/jpeg
Date: Tue, 26 Feb 2019 12:39:42 GMT
ETag: "1f5e3-582ba67eea3f0"
Last-Modified: Mon, 25 Feb 2019 16:26:42 GMT
Server: Apache/2.4.6 (CentOS) PHP/7.0.28
Strict-Transport-Security: max-age=86400; includeSubDomains
Via: 1.1 f165ce34daf8c0da182681179e863c24.cloudfront.net (CloudFront)
X-Amz-Cf-Id: ygg0SdiaCM0eGDvXXpbw8AGcGD5u0mMIrItTeh8jgfmvHrI4YgP_lQ==
X-Cache: Miss from cloudfront
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,en-GB;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: redacted
Host: www.redacted.com
If-Modified-Since: Mon, 25 Feb 2019 16:26:42 GMT
If-None-Match: "1f5e3-582ba67eea3f0"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36数据2-修改的 test.jpg响应头(第二次上载)
Request URL: https://www.redacted.com/images/test.jpg
Request Method: GET
Status Code: 304 Not Modified
Remote Address: 52.85.70.192:443
Referrer Policy: no-referrer-when-downgrade
Age: 269
Cache-Control: max-age=3600, public
Connection: keep-alive
Date: Tue, 26 Feb 2019 12:44:11 GMT
ETag: "1f5e3-582ba67eea3f0"
Server: Apache/2.4.6 (CentOS) PHP/7.0.28
Strict-Transport-Security: max-age=86400; includeSubDomains
Via: 1.1 8d6ec6531e86b6b4aca269514f4dbbe1.cloudfront.net (CloudFront)
X-Amz-Cf-Id: ITVX0Q5KEGtZTQj6qpZKX7CJYqfoEZF3ngujC1QFZ34vX9OI-1cubA==
X-Cache: Hit from cloudfront
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,en-GB;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: redacted
Host: www.redacted.com
If-Modified-Since: Mon, 25 Feb 2019 16:26:42 GMT
If-None-Match: "1f5e3-582ba67eea3f0"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36发布于 2019-10-17 12:59:51
发布于 2019-09-27 02:30:18
你有几种选择:
失效
根据https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects-paths,您可以对对象(例如,/*.js )运行无效操作,以删除所有JavaScript文件的缓存。或者可以使用/*使所有缓存失效。可以通过查看发行版,然后选择“无效”选项卡来管理无效。
行为
如果您知道经常更改的文件(如.css或.js文件),则可以在查看分发版时选择“行为”选项卡,并选择与预期文件(如*.js )匹配的路径模式。对于对象缓存选项,选择Customize并将所有TTL设置为0。
https://stackoverflow.com/questions/54886747
复制相似问题