就s3网址而言,真的有2种吗?为什么?有哪些不同的语法?
bucket.s3.amazonaws.com/key
和
s3.amazonaws.com/bucket/key
这是吗?为什么有2个?还有更多吗?这些是正确的吗?
答案 0 :(得分:3)
为S3中的对象提供多个URL模式的附加功能是由于虚拟主机和网站托管以及从根目录发布数据。我从
获得了这些信息在Bucket起始网址样式 - bucket.s3.amazonaws.com/key
中,您可以简单地添加像favicon,robots.txt等文件,就像在其他网址模式中一样 - s3.amazonaws.com/bucket/key
- 没有根目录的概念你可以放这些文件。
内容片段 - 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的改进。