以相同的文件名上传到 S3 后立即在 CDN 中刷新图像

Refresh image in CDN immediately after upload to S3 with same file name

我正在使用带有 S3 的亚马逊 Cloudfront CDN 作为源服务器,以在我的应用程序中提供用户个人资料照片等图像。我将用户的个人资料照片存储为 <userId>.jpg。当用户更改他的个人资料照片时,如何立即刷新CDN中的图像?

由于文件名是 <userId>.jpg 我不能为新图像取一个新名称。

您想存储更改次数的计数,并在您的网站上使用类似 <userId>.jpg?v=2 的内容。您必须为 CloudFront 分配打开查询字符串。

如果不更改文件名或查询字符串,您必须使用 CloudFront 失效,这将需要大约 15 分钟才能在所有地方生效。

通过 AWS 自己的 LAMBDA 实现自动化是最好的选择。我不能把这个脚本归功于我,只是在 Google 上找到的。

https://gist.github.com/supinf/e66fd36f9228a8701706