Amazon云计算AWS之[3]简单存储对象S3

打印 上一主题 下一主题

主题 654|帖子 654|积分 1962

S3的基本概念和操作



  • 简单存储服务(Simple Storage Services,S3)构架在Dynamo之上,用于提供任意类型文件的暂时或永久性存储。S3的总体计划目标是可靠、易用及低本钱
  • S3存储体系的基本布局,涉及两个基本概念:桶(Bucket)和对象(Object)





  • 桶是用于存储对象的容器,其作用类似于文件夹,但桶不可以被嵌套,即在桶中不能创建桶
  • Amazon限制每个用户创建桶的数目,但没有限制每个桶中对象的数目
  • 桶的名称要求在整个Amazon S3的服务器中是全局唯一的,避免在S3中数据共享时出现相互辩说的情况
  • 对桶定名,建议采用符合DNS要求的定名规则,以便与CloudFront等其他AWS服务共同利用。

通俗明确


  • 想一想真实世界中的水桶。每个水桶可以用来装水,你可以有许多水桶,每个水桶可以放在不同的地方,可以贴上不同的标签(例如“花园用水”、“厨房用水”等),并且每个水桶都有本身的容量限制。不外,在S3服务中,桶里装的不是水,而是数据。
  • 在Amazon S3这个“云存储服务”里,桶(Bucket)是用来装你所有文件(在这里称为对象或Object)的地方。你可以想象它们就像是电脑上的文件夹,不外这些“文件夹”可以无限大,可以存储任何量的数据。
  • 每个桶都有一个独一无二的名字,全球范围内都不能重复,这就像是你给你的桶贴上了一个全世界唯一的标签,确保你发给朋友的地址只指向你的桶,而不是别人的。此外,桶可以设置权限,决定谁可以看到桶里的内容,谁可以向桶里添加内容等。这就像给你的桶上了一把锁,你可以决定谁有钥匙。
对象




  • 对象是S3的基本存储单元,主要由数据和元数据组成。
  • 数据可以是任意类型,但巨细受到对象最大容量的限制。
  • 元数据是数据内容的附加形貌信息,通过名称-值(name-value)聚集的形式来界说,可以是体系默认的元数据(System Metadata)或用户指定的自界说元数据(User Metadata)
元数据名称名称含义last-modified对象被最后修改的时间ETag利用MD5哈希算法得出的对象值Content-Type对象的MIME(多功能网际邮件扩充协议)类型,默认二进制/八位组Content-Length对象数据长度,以字节为单位

  • 每个对象在所在的桶中有唯一的键(key)。通过将桶名和键相联合的方式,可以标识每个对象
  • 键在对象创建后无法被更改,即重定名对于S3中的对象是无效的
  • S3中对象的存储在默认情况下是不举行版本控制的。但S3中提供了版本控制的功能,用于存档早期版本的对象或者防止对象被误删。版本控制只能对于桶内所有的对象启用,而无法详细对某个对象启用版本控制。当对某个桶启用版本控制后,桶内会出现键相同但版本号不同的对象,此时对象需要通过“桶名+键+版本号”的形式来唯一标识
基本操作



  • S3中支持对桶和对象的操作,主要包括:Get、Put、List、Delete和Head。
操作对象桶对象Get获取桶中对象获取对象数据和元数据Put创建或更新桶创建或更新对象List列出桶中所有键——Delete删除桶删除对象Head——获取对象元数据 S3的数据同等性模型

基知:CAP理论

CAP定理,又称布鲁尔定理(Brewer’s theorem),指出分布式体系不可能同时满意以下三个基本包管中的超过两个:

  • 同等性(Consistency):所有节点在同一时间具有相同的数据。
  • 可用性(Availability):包管每个哀求不管乐成或者失败都有响应。
  • 分区容忍性(Partition tolerance):体系在网络分区发生时,仍能继承运行。
对于Amazon S3这样的分布式体系,它计划上主要满意以下两个要素:


  • 可用性(Availability):S3确保在网络分区或其他故障时,用户的哀求仍然可以被响应,尽管响应中的数据可能不是最新的。
  • 分区容忍性(Partition tolerance):S3能够处理网络分区,纵然一部分节点无法通信,体系也能继承运作。数据会在内部举行复制,以确保当网络分区恢复后体系可以同步数据,达到终极同等性状态。
S3的终极同等性



  • S3中采用终极同等性模型
   

  • 在分布式体系中,同等性模型界说了体系中数据副本更新后可见性的规则和时限。
  

  • 同等性在S3中是终极同等性,而非强同等性。这意味着体系可能会在一段时间内出现数据不同等的情况,但终极会达到同等的状态。因此,S3的计划是为了在包管可用性和分区容忍性的条件下,通过终极同等性模型来尽可能提供同等性包管。
  • 在终极同等性模型下,假如没有新的更新操作,那么颠末一段时间,所有的数据副本终极将会是同等的。换句话说,一个乐成实行的写操作(如上传文件、修改文件)会在一段时间后对所有读操作(如获取文件)可见。
  • 在S3中上传或修改一个文件后,这些更改可能不会立即对所有用户可见。例如,一个用户可能会在上传文件几秒钟到几分钟后才能看到最新的文件版本。因为亚马逊的数据中央可能需要时间来传播和同步这些更改。



  • 在数据被充分传播到所有的存放节点之前,服务器返回给用户的还是原数据,此时用户操作可能会出现如下情况。(了解)
用户操作效果写入一个新的对象并立即读取服务器可能返回“键不存在”写入一个新的对象并立即列出桶中已有的对象该对象可能不会出现在列表中用新数据替换现有的对象并立即读取服务器可能返回原有的数据删除现有的对象并立即读取服务器可能返回被删除的数据删除现有的对象并立即列出桶中的所有对象服务器可能列出被删除的对象 S3的安全措施




  • 对于用户来说,体系的易用性是其思量的一方面,但终极决定其是否利用S3服务的通常是S3的安全程度。
  • S3向用户提供包括身份认证(Authentication)和访问控制列表(ACL)的双重安全机制
身份认证(Authentication)




  • S3中利用基于HMAC-SHA1的数字签名方式来确定用户身份。HMAC-SHA1是一种安全的基于加密Hash函数和共享密钥的消息认证协议,它可以有效地防止数据在传输过程中被截获和窜改,维护数据的完备性、可靠性和安全性
  • HMAC-SHA1消息认证机制的乐成在于一个加密的Hash函数、一个加密的随机密钥和一个安全的密钥交换机制
  • 在新用户注册时,Amazon给每个用户分配一个Access Key ID和一个Secret Access Key。

    • Access Key ID是一个20位的由字母和数字组成的串,用来确定服务哀求的发送者
    • Secret Access Key是一个40位的字符串,参与数字签名过程,用来证明用户是发送服务哀求的账户的合法拥有者。




  • S3数字签名详细实现过程


  • S3用户起首发出服务哀求,体系会自动天生一个服务哀求字符串。
  • HMAC函数负责计算用户的服务哀求字符串和Secret Access Key天生的数字签名,并将这个签名和服务哀求字符串一起传给S3服务器。
  • 服务器接收到信息后会从中分离出用户的AccessKey ID,通过查询S3数据库得到用户的Secret Access Key
  • 利用和上面相同的过程天生一个数字签名,然后和用户发送的数字签名做比对,相同则通过验证,反之拒绝。
访问控制列表(ACL)



  • 访问控制列表(Access Control Policy)是S3提供的可供用户自行界说的访问控制战略列表。
访问控制战略(ACP)



  • S3的访问控制战略(Access Control Policy,ACP)提供如下五种访问权限。

  • 留意:WRITE_ACP具有覆写对象和桶的ACP权限,所以可以通过覆写简介得到read、write、read_acp等权限。
  • 留意S3的ACL不具有继承性:                                        桶和对象的                            A                            C                            L                            各自独立                                  桶和对象的ACL各自独立                     桶和对象的ACL各自独立,对桶有某种访问权限不代表对桶中的对象也具有相同的权限
授权用户类型



  • S3中有三大类型的授权用户,分别是所有者(Owner)、个人授权用户(User)和组授权用户(Group)
  • 所有者(Owner):桶或对象的创建者,                                             默认具是                               W                               R                               I                               T                               E                               _                               A                               C                               P                               权限                                      默认具是WRITE\_ACP权限                        默认具是WRITE_ACP权限。所有者本身也要服从ACL,假如该所有者没有                                             R                               E                               A                               D                               _                               A                               C                               P                                      READ\_ACP                        READ_ACP,则无法读取ACL。但是所有者可以通过覆写相应桶或对象的ACP获取想要的权限,从这个意义上来说,所有者默认就是最高权限拥有者
  • 个人授权用户(User):两种授权方式,一种是通过电子邮件地址授权的用户,另一种是通过用户ID举行授权。后
    一种方式比力贫苦,因为ID是一个不规则的字符串,用户在授权的过程中容易堕落。电子邮件地址方式授权的方法终极还是在S3服务器内部转换成相应的用户ID举行授权。
  • 组授权用户(Group):一种是AWS用户组,它将授权分发给所有AWS账户拥有者;另一种是所有用户组(允许匿名访问,有潜在危险,不建议利用)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表