S3按区域配置Bucket

时间:2015-04-20 16:58:08

标签: amazon-s3

我有3个桶: 1个主桶main.ms.com 另外2人west.ms.com和eu.ms.com

复制启用如下:

bucket main.ms.com - > eu.ms.com - > west.ms.com

如何通过http请求获取好的存储桶: 例如:bucket main.ms.com/mypicture.jpg应该使用: - eu.ms.com/mypicture.jpg如果我在欧洲 - west.ms.com/mypicture.jpg如果我在西海岸。

感谢

1 个答案:

答案 0 :(得分:1)

如果您没有在具有基于地理位置/延迟的路由的区域中的应用程序/ Web服务器,向您发送请求,则没有一种直接的机制可以从您期望的起点(存储桶复制)执行此操作。

如果确实有这个,那么解决方案似乎很明显 - 每个服务器都应该将请求代理到最近的存储桶,或者提供解决相应存储桶的链接,因为它的受众应该位于同一个区域。

但这里的规范解决方案不涉及桶复制......它将使用单个存储桶以及AWS CloudFront CDN,它将请求地理路由到最近的端点边缘位置,从中获取对象存储桶并缓存每个边缘位置的热门项目,这些项目已经看到了它的请求(没有任何存储费用),直到对象过期或被逐出为更受欢迎的对象腾出空间(此时,边缘位置将从S3下次通过该边缘位置请求时)。这将在单个桶前使用。

无法通过复制存储桶透明地执行此操作,因为直接访问存储桶时,浏览器发送的Host:标头需要与存储桶名称完全匹配。由于复制的存储桶必须具有不同的名称,因此在没有涉及某种中间服务器或服务的情况下,基于延迟的路由解决方案(例如Route 53可以提供)不能用于向最近的存储桶发送请求。