我目前已将我的静态网站的版本1和2上传到已启用版本控制的S3存储桶中。默认情况下,访客访问S3网址时会显示其网站的版本2。是否可以通过编程方式或通过控制台将其设置为显示版本1?
您可以通过将S3文件中的特定版本添加到请求中来访问文件的特定版本http://example.cloudfront.net/image.png?verisonId=[id]
。
您还需要设置一个存储桶策略,以允许您的CloudFront发行版访问版本控制的对象:
{
"Version":"2012-10-17",
"Id": "CloudFrontAccessToVersionedObjects",
"Statement": [{
"Action": ["s3:GetObject", "s3:GetObjectVersion" ],
"Effect": "Allow",
"Principal":{"CanonicalUser":"<CLOUDFRONT CANONICAL ID>"},
"Resource": "<BUCKET>",
"Sid": "CloudFrontAccess"
}]}
应用存储桶策略后,您需要使缓存无效。
附带说明一下,假设您始终希望使用特定版本,而无需对现有代码进行任何更改的一种快速实现此方法的方法是,在将请求传递给之前,使用Viewer Request Lambda @ Edge重写请求。您的S3来源,以将附加versionId=[id]
到S3来源的所有请求中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句