S3 uRLS有哪些不同的模式?

时间:2014-07-02 20:23:05

标签: url amazon-web-services amazon-s3

就s3网址而言,真的有2种吗?为什么?有哪些不同的语法?

bucket.s3.amazonaws.com/key

s3.amazonaws.com/bucket/key
这是吗?为什么有2个?还有更多吗?这些是正确的吗?

2 个答案:

答案 0 :(得分:3)

为S3中的对象提供多个URL模式的附加功能是由于虚拟主机和网站托管以及从根目录发布数据。我从

获得了这些信息

在Bucket起始网址样式 - bucket.s3.amazonaws.com/key中,您可以简单地添加像favicon,robots.txt等文件,就像在其他网址模式中一样 - s3.amazonaws.com/bucket/key - 没有根目录的概念你可以放这些文件。

来自AWS S3页面的

内容片段 - Virtual Hosting of Buckets

  

通常,虚拟主机是服务多个Web的做法   来自单个Web服务器的站点。区分网站的一种方法是   使用请求的明显主机名而不仅仅是路径   命名URI的一部分。普通的Amazon S3 REST请求指定了一个   通过使用Request-URI的第一个斜杠分隔组件来实现   路径。或者,您可以使用Amazon S3虚拟主机进行寻址   REST主机标头中的REST API调用中的存储桶。在   实践中,Amazon S3将Host解释为大多数存储桶的含义   可自动访问(针对有限类型的请求)   http://bucketname.s3.amazonaws.com。此外,通过命名你的桶   在您注册的域名之后,并使该名称成为DNS别名   对于Amazon S3,您可以完全自定义Amazon S3的URL   资源,例如http://my.bucketname.com/

     

除了自定义URL的吸引力之外,还有第二个好处   虚拟主机是能够发布到"根目录"的   你的存储桶的虚拟服务器。这种能力很重要,因为   许多现有应用程序在此标准位置搜索文件。   例如,favicon.ico,robots.txt,crossdomain.xml都是预期的   在根部找到。

答案 1 :(得分:1)

AWS不赞成使用旧的路径样式URL: https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/

  

旧S3与新S3当前支持两种不同的寻址模型:   路径样式和虚拟托管样式。让我们快速浏览一下   一。路径样式模型如下所示(全局S3   端点):

     

https://s3.amazonaws.com/jbarr-public/images/ritchie_and_thompson_pdp11.jpeg   https://s3.amazonaws.com/jeffbarr-public/classic_amazon_door_desk.png

     

或者这个(区域S3端点之一):

     

https://s3-us-east-2.amazonaws.com/jbarr-public/images/ritchie_and_thompson_pdp11.jpeg   https://s3-us-east-2.amazonaws.com/jeffbarr-public/classic_amazon_door_desk.png

     

在此示例中,jbarr-public和jeffbarr-public是存储桶名称;   /images/ritchie_and_thompson_pdp11.jpeg和   /classic_amazon_door_desk.png是对象键。

     

即使对象由不同的AWS账户拥有并且位于   不同的S3存储桶(可能在不同的AWS区域),   它们位于DNS子域s3.amazonaws.com中。坚持那个想法   而我们来看等效的虚拟托管样式引用   (尽管您可能会认为这些是“新的”,但它们已经存在   自2010年以来):

     

https://jbarr-public.s3.amazonaws.com/images/ritchie_and_thompson_pdp11.jpeg   https://jeffbarr-public.s3.amazonaws.com/classic_amazon_door_desk.png

     

这些URL引用相同的对象,但是这些对象现在位于   不同的DNS子域(jbarr-public.s3.amazonaws.com和   jeffbarr-public.s3.amazonaws.com)。区别是   微妙,但非常重要。当您使用URL引用对象时,   DNS解析用于将子域名映射到IP地址。   使用路径样式模型,子域始终为s3.amazonaws.com或   区域端点之一;使用虚拟托管的样式   子域特定于存储桶。这个额外的程度   端点特异性是打开许多重要大门的关键   对S3的改进。