S3支持三种资源访问方式:

  1. Path Style URL

  2. Virtual-hosted Style URL

  3. 自定义域名

本质上,对象存储使用bucket,key来唯一标识一个对象,所以只要你告诉对象存储服务端这两个东西,那么理论上就能定位到这个数据。以上三种方式,总归都是为了获取到(bucket,object_key)。

1.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}

2.Virtual-Hosted Style URL

在Virtual-Hosted Style URL 中,bucket的名称成了subdomain:

http://BUCKET.s3endpoint

比如,如果有一个photo.jpg存放在region为us-west-2,bucket为images的bucket中。可以用以下方式来访问:

http://images.s3-us-west-2.amazonaws.com/photo.jpg

推荐使用Virtual-Hosted Style的访问方式。因为这个可以提高访问性能,少一跳。

重点:

  • bucket取自host一部分

  • 通过泛域名解析到公有云厂商服务器上

3.自定义域名

这个是初学者最难理解的一种访问方式。先说一个具体的例子,如果你要使用自定义域名下载访问对象,怎么操作?

  1. 首先,用户需要自己搞定一个能用的域名,并且把这个域名cname到你需要访问的S3 endpoint;

  2. 其次,用户在厂商提供的对象存储的管理界面上配置绑定这个域名到某个bucket;(旁白:这个只是存储一个map映射:域名到bucket的映射)

准备好了前面两个步骤,你就可以用自定义域名来访问资源:

// 注意:这里不需要指定bucket,只需要指定对象keyhttp://${自定义域名}.com/photo.jpg

解释下这两个步骤的作用:

  • 第一个步骤:用户负责S3请求发到S3的服务器上,用户负责这个路径的连通

  • 第二个步骤:对象存储服务端 会创建一个map,负责解析这个域名到bucket的映射(旁白:对象存储服务器说,只要你请求发的过来,我就能找到这个域名对应的bucket)


AWS S3的厂商推荐使用的是Virtual-hosted style URL。提供这种方式访问的厂商,要能支持泛域名解析。其实对于公有云厂商,更愿意推荐你使用自定义域名的方式。为啥?可以思考下。

举个例子,如果用户使用的是Path Style访问,那么Host使用的就是厂商统一的域名,如果用户在云存储上放置了一些非法的内容,很有可能会连累存储厂商的自身域名被封,这样的影响是非常严重的,会导致整个存储服务挂掉,影响所有用户。

对象存储S3访问姿势相关推荐

  1. 浅谈云上攻防——对象存储服务访问策略评估机制研究

    前言 近些年来,越来越多的IT产业正在向云原生的开发和部署模式转变,这些模式的转变也带来了一些全新的安全挑战. 对象存储作为云原生的一项重要功能,同样面临着一些列安全挑战.但在对象存储所导致的安全问题 ...

  2. 对象存储 S3 在分布式文件系统中的应用

    当前,业内擅长非结构化数据的存储方式主要是文件存储和对象存储.文件存储和对象存储各有千秋,文件存储不仅能兼顾多个应用和多个用户访问,更突出的优势是方便文件共享:对象存储凭借灵活性和扁平架构得到了广泛的 ...

  3. 如何用 Minio SDK 访问滴滴云对象存储

    一. 前言 滴滴云对象存储 S3 定位分布式海量数据存取服务.S3 提供标准的对象存储服务,您可以通过网络随时随地方便地存储和获取图片/音频/视频/文本/大文件等各类数据文件. Minio 是一个开源 ...

  4. 【观察】戴尔易安信ECS:领跑企业级对象存储,背后的底蕴与底气

    申耀的科技观察 读懂科技,赢取未来! 毫无疑问,今天数据正快速融入到人们的日常生活中,这让各行各业的数据都出现了"井喷式"的爆发增长.但是,随着企业对数据的理解和应用越来越深刻,会 ...

  5. 一文讲清:对象存储、文件存储、块存储。绝对好文

    从应用角度看块存储.文件存储.对象存储 产品和市场需求有各种相互影响的关系,但不管是哪一种,最终呈现都是产品和应用需求需要对应匹配.应用需求越多样化,市场也就划分得更加细,产品种类也就更加丰富.在存储 ...

  6. 【存储】文件存储、块存储、对象存储的区别

    代表 协议 特点 是否支持共享 网络场景 应用场景 块存储 DAN/SAN EFS 光纤协议或者基于千兆/万兆以太网(IP SAN .iSCSI) 并发访问低,一般多用于系统中,随机读写和可靠性高(块 ...

  7. Ceph 认证授权和RBD块存储、对象存储使用(三)

    RBD块存储 RBD介绍 1.RBD是Ceph分布式集群中最常用的存储类型 2.块是一个有序字节,普通的一个块大小为512字节,基于块的存储是最常见的存储方式,比如常见的硬盘.软盘和CD光盘等,都是存 ...

  8. 块存储、文件存储、对象存储三者有什么区别,有什么关系?

    一.块存储.文件存储.对象存储,三者的本质差别是什么? 1.块存储 典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1 ...

  9. 纵观移动云对象存储发展历程,也少不了 Apache APISIX 的能力加持

    背景说明 中国移动云能力中心作为中国移动云设施构建者.云服务提供者以及云生态汇聚者,承担了移动云的技术研发.规划建设.运营维护. 合作引入.销售支撑.支持上云六大工作职责. 截至 2020 年 10 ...

最新文章

  1. 样式集(一) 通用商品列表样式
  2. $(window).load(function() {})和$(document).ready(function(){})的区别
  3. app.vue里使用data_Yeoman自定义Generator使用案例及Plop的使用
  4. (转载)Shutter 0.90 发布 – BUG修复和增强
  5. 【 || 短路运算】if语句的简化:短路原理、短路效应
  6. vivado常规操作之烧写bit文件_固化mcs文件_调试界面debug之ila与vio的操作
  7. c#使用FluentFtp实现一行代码实现ftp上传下载等
  8. 使用二分查找向一个有序数组中插入一个数据
  9. c# excel导出png_批量导出Excel文件中的图片,用VBA代码其实很简单
  10. Hibernate的like用法
  11. Jquery 取色器
  12. java基于springboot高校后勤报修管理系统
  13. 复元奇方饮_谁研制的?治疗什疾病?作用与功效?
  14. 化繁为简,我用”知晓推送”开发微信小程序订阅消息
  15. iOS GitHub Top 100 简介
  16. cmake中的INTERFACE_INCLUDE_DIRECTORIES是干什么的
  17. 大数据数学基础 python描述_大数据数学基础(Python语言描述)
  18. 一、webpack的全局安装和局部安装以及使用
  19. AndroidIos打包
  20. Mac 中 MySQL 的安装与卸载

热门文章

  1. [转]C#中多路IP摄像机的视频监控系统
  2. CodeForces - 1520G To Go Or Not To Go?(bfs)
  3. CodeForces - 1328D Carousel(构造+贪心)
  4. HDU - 3397 Sequence operation(线段树+区间合并)
  5. pythonrequests解析_Python requests获取网页常用方法解析
  6. uva 10305拓扑排序
  7. php中如何固定表格宽度,实例讲解DataTables固定表格宽度(设置横向滚动条)
  8. php时间到期提醒功能,php还剩多长时间过期函数
  9. 字符串匹配算法(一):BF(BruteForce)算法和RK(RabinKarp)算法
  10. python 实现HMAC_SHA1算法