赞
踩
通俗理解
想一想真实世界中的水桶。每个水桶可以用来装水,你可以有很多水桶,每个水桶可以放在不同的地方,可以贴上不同的标签(例如“花园用水”、“厨房用水”等),并且每个水桶都有自己的容量限制。不过,在S3服务中,桶里装的不是水,而是数据。
在Amazon S3这个“云存储服务”里,桶(Bucket)是用来装你所有文件(在这里称为对象或Object)的地方。你可以想象它们就像是电脑上的文件夹,不过这些“文件夹”可以无限大,可以存储任何量的数据。
每个桶都有一个独一无二的名字,全球范围内都不能重复,这就像是你给你的桶贴上了一个全世界唯一的标签,确保你发给朋友的地址只指向你的桶,而不是别人的。此外,桶可以设置权限,决定谁可以看到桶里的内容,谁可以向桶里添加内容等。这就像给你的桶上了一把锁,你可以决定谁有钥匙。
元数据名称 | 名称含义 |
---|---|
last-modified | 对象被最后修改的时间 |
ETag | 利用MD5哈希算法得出的对象值 |
Content-Type | 对象的MIME(多功能网际邮件扩充协议)类型,默认二进制/八位组 |
Content-Length | 对象数据长度,以字节为单位 |
操作对象 | 桶 | 对象 |
---|---|---|
Get | 获取桶中对象 | 获取对象数据和元数据 |
Put | 创建或更新桶 | 创建或更新对象 |
List | 列出桶中所有键 | —— |
Delete | 删除桶 | 删除对象 |
Head | —— | 获取对象元数据 |
CAP定理,又称布鲁尔定理(Brewer’s theorem),指出分布式系统不可能同时满足以下三个基本保证中的超过两个:
对于Amazon S3这样的分布式系统,它设计上主要满足以下两个要素:
可用性(Availability):S3确保在网络分区或其他故障时,用户的请求仍然可以被响应,尽管响应中的数据可能不是最新的。
分区容忍性(Partition tolerance):S3能够处理网络分区,即使一部分节点无法通信,系统也能继续运作。数据会在内部进行复制,以确保当网络分区恢复后系统可以同步数据,达到最终一致性状态。
- 在分布式系统中,一致性模型定义了系统中数据副本更新后可见性的规则和时限。
一致性在S3中是最终一致性,而非强一致性。这意味着系统可能会在一段时间内出现数据不一致的情况,但最终会达到一致的状态。因此,S3的设计是为了在保证可用性和分区容忍性的前提下,通过最终一致性模型来尽可能提供一致性保证。
在最终一致性模型下,如果没有新的更新操作,那么经过一段时间,所有的数据副本最终将会是一致的。换句话说,一个成功执行的写操作(如上传文件、修改文件)会在一段时间后对所有读操作(如获取文件)可见。
在S3中上传或修改一个文件后,这些更改可能不会立即对所有用户可见。例如,一个用户可能会在上传文件几秒钟到几分钟后才能看到最新的文件版本。因为亚马逊的数据中心可能需要时间来传播和同步这些更改。
用户操作 | 结果 |
---|---|
写入一个新的对象并立即读取 | 服务器可能返回“键不存在” |
写入一个新的对象并立即列出桶中已有的对象该对象 | 可能不会出现在列表中 |
用新数据替换现有的对象并立即读取 | 服务器可能返回原有的数据 |
删除现有的对象并立即读取 | 服务器可能返回被删除的数据 |
删除现有的对象并立即列出桶中的所有对象 | 服务器可能列出被删除的对象 |
S3中使用基于HMAC-SHA1的数字签名方式来确定用户身份。HMAC-SHA1是一种安全的基于加密Hash函数和共享密钥的消息认证协议,它可以有效地防止数据在传输过程中被截获和篡改,维护数据的完整性、可靠性和安全性。
HMAC-SHA1消息认证机制的成功在于一个加密的Hash函数、一个加密的随机密钥和一个安全的密钥交换机制。
在新用户注册时,Amazon给每个用户分配一个Access Key ID和一个Secret Access Key。
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账户拥有者;另一种是所有用户组(允许匿名访问,有潜在危险,不建议使用)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。