S3支持三种资源访问方式:
- Path Style URL
- Virtual-hosted Style URL
- 自定义域名
本质上,对象存储使用bucket,key来唯一标识一个对象,所以只要你告诉对象存储服务端这两个东西,那么理论上就能定位到这个数据。以上三种方式,总归都是为了获取到(bucket,object_key)。
Path Style URL
在Path Style URL中,bucket的名字紧跟在domain之后,成为URL path的一部分。
http://s3endpoint/BUCKET
比如,如果有一个photo.jpg存放在region为us-west-2,bucket为images的bucket中。可以用以下方式来访问:
http://s3-us-west-2.amazonaws.com/images/photo.jpg
重点:
- 所有用户请求Host相同(旁白:在鱼龙混杂的互联网环境下,这种方式有个坑,思考下?)
- bucket和key在URL里面:/ {bucket} / {key}
Virtual-Hosted Style URL
在Virtual-Hosted Style URL 中,bucket的名称成了subdomain:
http://BU