如何显示S3中托管的静态网站的早期版本



我目前已将静态网站的第1版和第2版上传到启用了版本控制的S3存储桶中。默认情况下,当访问者访问S3 url时,会显示其网站的版本2。有没有办法通过程序或控制台将其设置为显示版本1?

您可以通过向请求中添加一个版本(如http://example.cloudfront.net/image.png?verisonId=[id](来访问S3中文件的特定版本。

您还需要设置一个bucket策略,允许CloudFront分发访问版本化的对象:

{
"Version":"2012-10-17",
"Id": "CloudFrontAccessToVersionedObjects",
"Statement": [{
"Action": ["s3:GetObject", "s3:GetObjectVersion" ],
"Effect": "Allow",
"Principal":{"CanonicalUser":"<CLOUDFRONT CANONICAL ID>"},
"Resource": "<BUCKET>",
"Sid": "CloudFrontAccess"
}]}

在应用bucket策略之后,您需要使缓存无效。

顺便说一句,假设您总是想使用特定的版本,在不必对现有代码进行任何更改的情况下实现这一点的一种快速方法是使用查看器请求Lambda@Edge要重写请求,在将其传递给S3 Origin之前,将versionId=[id]附加到S3 Origin的所有请求中。

最新更新