首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >S3回退存储桶

问S3回退存储桶
EN

Stack Overflow用户
提问于 2019-07-31 09:10:52
回答 1查看 265关注 0票数 0

我已经建立了一个系统,其中我有产品模板。品牌将覆盖模板以创建产品。您可以将图片上传到模板,并在产品上进行覆盖。产品图片被上传到对应品牌的S3存储桶中。但是在产品模板上,图片被上传到一个通用的S3存储桶。

有没有办法让品牌的存储桶回退到通用存储桶,如果它接收到带有文件url的404或403。类似于托管网站重定向规则?这些只是带有图片的桶,所以它不会是一个托管的网站,我希望避免打开它。

EN

回答 1

Stack Overflow用户

发布于 2019-08-01 00:14:43

单独使用S3无法做到这一点,但可以将CloudFront与两个S3存储桶配合使用,并在源组中配置适当的源故障切换设置,以便第一个存储桶中的403/404错误会导致CloudFront从第二个存储桶中发出后续请求。

为缓存行为配置源故障切换后,CloudFront将对查看器请求执行以下操作:

  • 如果缓存命中,CloudFront将返回请求的文件。
  • 如果缓存未命中,CloudFront会将请求路由到您在源组中标识的主源。
  • 当返回尚未配置为进行故障转移的状态代码时,CloudFront将处理请求的内容。
  • 当主要源返回已配置为进行故障转移的状态代码时,或者在超时后,CloudFront会将请求路由到源组中的备份源。

< code >F211

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html

这似乎就是您所描述的所需行为。当然,这意味着需要回退到第二个存储桶的缓存未命中将需要额外的时间来提供服务,但对于缓存命中,不会有任何延迟,因为CloudFront只对缓存未命中执行“尝试一个,然后尝试另一个”。这还意味着,您将在主存储桶上为不存在的对象支付一些流量,因此,如果主存储桶经常拥有对象,这将是最有意义的。

此解决方案不重定向浏览器-- CloudFront在返回响应之前遵循第二条路径--因此,在上传回退对象时,您需要注意附加到回退对象的Cache-Control设置,因为在回退对象已被获取和缓存(由CloudFront或浏览器缓存)之后添加(以前不存在的)主对象在任何缓存对象过期之前都是不可见的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57281863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档