S3服务(Simple Storage Service简单存储服务)简介

本文介绍了亚马逊的简单存储服务S3,包括其基本概念如Bucket、Object、Key和Versioning等,以及如何通过REST和SOAP接口进行操作。此外还讨论了S3如何与其他AWS服务如EC2、ElasticMapReduce集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

亚马逊云存储之S3(Simple Storage Service简单存储服务)

旧文 2010-05-10

S3是Simple Storage Service的缩写,即简单存储服务。亚马逊的名词缩写也都遵循这个习惯,例如Elastic Compute Cloud缩写为EC2等等。其他组织类似的命名有W3C,如果我们也follow这个习惯则IEEE会被写为IE3,CCTV就是C2TV,好像有点罗嗦了。

S3说的玄乎一点可以叫云存储,通俗一点就是大网盘。其概念类似于分布式文家系统,同Google的GFS应该在一个层面。

S3的定义如下

Amazon S3 is a web service that enables you to store data in the cloud. You can then download the data or use the data with other AWS services, such as Amazon Elastic Cloud Computer (EC2).

看来除了做网盘只用,S3存储的数据还可以被其他的亚马逊高层服务直接引用,这一点比国内的简单的网盘提供商高不少,亚马逊大网盘是其整体Solution中的有机组成部分。

基本概念

1。bucket – 类比于文件系统的目录

A bucket is a container for objects stored in Amazon S3. Every object is contained in a bucket. For example, if the object named photos/puppy.jpg is stored in the johnsmith bucket, then it is addressable using the URL http://johnsmith.s3.amazonaws.com/photos/puppy.jpg

似乎目录不能嵌套,也就是不能有子目录,官方的说法是起到namespace的作用,是访问控制的基本单位,其实丫还是个目录。

2。Object – 类比文件系统的文件

对象中带有对象名名,对象属性,对象本身最大5G,其实也还是个文件。

目前object有Versioning的属性(即对象不同历史版本的cache概念),这个是文件系统不具备的,在早期看到的S3资料中没有这一概念,应该是演进的结果,其面对的应该是有版本控制的需求的用户。

3。Keys – 类比文件名

key的样式也是URL,记住亚马逊的服务都是使用Web Service或REST方式访问的。

例如,http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl

其中‘doc’就是目录名(桶名),”2006-03-01/AmazonS3.wsdl”是文件名(对象名)。

如果引入了version则bucket + key + version唯一标示一个版本的文件。

4。Versioning – 类比CVS中的一个版本

下面是一些实现原理的描述。

<图片缺失...>

同名文件的写入,并不覆盖已有文件而是增加了一个最新的文件版本。

同样下面的删除也不真正删除,而是mark了删除标记。

<图片缺失...>

当最新版本mark为deleted之后,对该对象的get操作返回404错误,除非明确指定一个历史版本。

当然也可以指定版本永久删除其中一个拷贝。

5。Regions – 文件存储的地理位置 

这个也是文件系统中不存在的,就是不同的地理区域,用户可以指定将文件存在某个国家的服务器。我个人认为,这不是一个很好的概念,作为云的提供商,应该对于应用屏蔽这些部署细节。工程实现同技术理想还是有差距。目前其可以指定的server位置有美国、爱尔兰、新加坡等地。

接口API

常用的API就是读、写、增、删、改、查等等。使用标准的SOAP和REST定义。

尤其一提的是对于对象的获取,除了用http直接按照C/S方式获取之外,亚马逊支持BT协议,也就是说提供种子。从用户角度想,亚马逊会 charge更少的钱,但同时亚马逊自身也会减负。bt下载的速度就不太稳定了,基本取决于种子“质量”也就是取决于对文件感兴趣的人的多寡。例如命名为 “XX门”估计文件下载能够快很多。

数据有什么用

当数据上传到aws云之后,可以很多服务可以使用例如。

Amazon ElasticCompute Cloud

Amazon Elastic MapReduce

Amazon Import/Export等。

一点遗憾

没有看到如何实现分布式文件系统的资料,这是了解其Scale以及可靠性等的关键,或许亚马逊没有google大方,没有提供类似GFS之类的底层机制实现文档。

参考

http://aws.amazon.com/s3/#functionality

http://docs.amazonwebservices.com/AmazonS3/2006-03-01/

http://developer.amazonwebservices.com/connect/forum.jspa?forumID=24


http://www.kernelchina.org/content/%E4%BA%9A%E9%A9%AC%E9%80%8A%E4%BA%91%E5%AD%98%E5%82%A8%E4%B9%8Bs3simple-storage-service%E7%AE%80%E5%8D%95%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1

Amazon Simple Storage Service(简称S3)是亚马逊云计算服务中的一种存储服务。它提供了一个简单而可扩展的存储解决方案,可以轻松地存储和检索大量的数据。 S3具有高度的可靠性和耐久性。它使用了分布式存储体系结构,在多个物理位置存储数据的多个副本,以及自动错误检测和修复。这样可以确保数据的安全性和可用性,并基于服务级别协议(SLA)保证99.999999999%(11个9)的持久性。 使用S3,用户可以创建称为“桶”的存储容器,并在桶中存储对象。对象可以是任何类型的文件,例如图片、视频、文档等。每个对象都有一个唯一的键(Key),可以通过该键在S3中进行检索。 S3还提供了灵活的访问控制功能,可以对存储的对象进行细粒度的权限设置,包括私有访问、公共读取、公共写入等。同时,S3支持标准的REST和SOAP API,使开发人员可以轻松地集成S3到他们的应用程序中。 除了数据存储功能,S3还提供了其他附加功能。例如,用户可以配置S3管理静态网站,并使用S3存储和分发静态内容。此外,S3还提供了跨区域复制功能,允许将数据复制到距离原始数据存储位置更远的区域,以增强数据备份和灾难恢复的能力。 总而言之,Amazon S3是一种可靠、高可用、易于使用且具有强大功能的云存储服务,它为用户提供了安全、经济高效的数据存储和检索解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值