对象存储
介绍
对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。
就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
文件和对象都有与它们所包含的数据相关的元数据,但是对象是以扩展元数据为特征的。每个对象都被分配一个唯一的标识符,允许一个服务器或者最终用户来检索对象,而不必知道数据的物理地址。这种方法对于在云计算环境中自动化和简化数据存储有帮助。
对象存储经常被比作在一家高级餐厅代客停车。当一个顾客需要代客停车时,他就把钥匙交给别人,换来一张收据。这个顾客不用知道他的车被停在哪,也不用知道在他用餐时服务员会把他的车移动多少次。在这个比喻中,一个存储对象的唯一标识符就代表顾客的收据。
由于对象存储将遍布于很多节点且最新的数据并非总是可用,这将成为对象存储最终一致性的问题。
所有的数据存储都涉及到简称为CAP的三个元素:一致性、可用性和分区。Consensus,Availabilty,Partition
如果只是执行了写操作从而改变了一个对象,但有人正在从另外的节点访问这个对象。节点可能会在不同的物理位置,因为对象存储支持很大的地理扩展。新用户可能正在读取对象,但那是旧版本。这就是对象存储的最终一致性问题,此时并没有及时的同步。
这将成为问题,特别是利用对象存储做协同的时候,厂商为保证对象存储的一致性做了很好的工作,像是Joyent以及他的Manta 存储服务,一旦对象更改将不支持读取旧的内容。你必须等待,但你所读取的内容会是一致的。
简单理解
对象存储可简单理解为,你将现实中的某个物件随机寄存在了一个地方,存放在这个地方的东西你可以随时调用,那么存储地就被称为对象存储区,这个操作行为就叫做对象存储。
(需要注意的是,实际上数据不同于物件,数据可能会被多方同时调用修改,所以确保对象存储的一致性很重要)
已知登录参数
创建资源
连接ECS服务器
https://ecs.console.aliyun.com
在左侧导航栏中,选择实例与镜像>实例。
展示基于ECS的图片分享网站
在Chromium浏览器打开新页签,在地址栏输入http://<ECS公网地址>,访问图片分享网站。
返回如下页面,您可以查看到当前页面中显示1张 “花园” 的图片,该图片实际是由 4 张小图片组成的。
搭建基于ECS和OSS图片分享网站
id:云产品资源列表中的AK ID。
secret:云产品资源列表中的AK Secret。
endpoint:云产品资源列表中OSS的Endpoint外网域名。
bucket:云产品资源列表中OSS的Bucket名称。
object_dir:云产品资源列表中OSS的Object路径。
2、执行如下命令,将01.png上传到OSS的Object路径中。
说明:
该脚本使用OSS提供的API接口put_object_from_file(),将本地文件上传到云产品资源列表OSS的Object路径中。通过Python SDK的方式上传本地文件到OSS的具体方法,请参考实验SL003 使用OSS API上传和下载文件。
python oss_upload.py 01.png
分别执行如下命令,将02.png、03.png和04.png三张图片分别上传到OSS的Object路径中。
python oss_upload.py 02.png
python oss_upload.py 03.png
python oss_upload.py 04.png
读取OSS存储图片
删除了png图片后
切换至文件存储OSS管理控制台页签。在文件管理页签中,单击01.png。复制文件URL
进入修改src,替换为复制得到的url
按照对图片1的操作对后续图片执行一样的操作(注意:src每张图的https地址都不一样的)