asp.net-mvc-3 – Amazon CloudFront Cache失效策略,以确保新鲜内容和成本效益

我试图围绕我应该用什么方法来强制CDN刷新用户个人资料照片在网站上,其中CloudFront是提供个人资料照片的CDN,而S3是底层文件存储.

用户更新个人资料照片后,我需要确保用户个人资料照片是最新的.我看到有三个选项可以更新个人资料照片,并确保网站用户修改个人资料照片后立即获取最新图像.在确保新鲜内容和最大长期成本效益方面,这些方法是否优于其他方法?是否有更好的方法来确保新鲜的内容和最大的长期成本效益?

>发出一个S3放置对象请求以使用其原始文件名保存文件,并发出一个Amazon CloudFront失效请求. Amazon CloudFront每月最多允许1000次免费失效请求,这似乎有点偏低
>发出一个S3delete对象请求以删除原始照片,然后一个S3放置对象请求以使用唯一的新照片文件名保存新照片.这将是每个文件更新的两个S3请求,并且不需要CloudFront CDN失效请求.然后,CloudFront会在更新后立即提供最新文件,并将图像URL自动设置为新文件
>发出一个S3放置对象请求以使用其原始文件名保存文件,然后客户端将版本代码附加到CDN URL(即/img/profilepic.jpg?x=timestamp)或该行的某些内容.我不确定这个策略在使缓存的CloudFront对象失效方面有多么有效

谢谢

解决方法

CloudFront失效可能需要一段时间才能启动,并且作为删除必须删除内容(如版权侵权)的最后手段而被推荐.

最好的方法是版本化URL.对于个人资料图片,我会使用唯一的ID(例如GUID).每当用户上传新照片时,请替换该URL(如果您愿意,可以删除旧照片).

使用用户个人资料照片的新ID更新数据库时,CloudFront将提取新图像并立即进行更改.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....