Amazon S3 API
一、概述
Amazon s3,全称为Amazon Simple Storage Service。EC2和S3是Amazon最早推出的两项云服务。
REST,这也是比较火的一种Web服务架构。简单来说,资源是由URI指定,对资源的操作包括GET、PUT、POST、DELETE和HEAD,返回结果常常是XML或者其他形式。参见维基REST:
Amazon S3的操作包括三部分:Service、Buckets和Objects。
- Service只包括GET操作,就是返回所有的Buckets列表。
- Object是指存储在云端的文件的统称。也就是存储在S3里的基本实体。一个object包括object data和metadata。metadata是一些列的name-value键值对,用来描述这个object,默认情况下包含文件类型、最好修改时间等等,当然用户也可以自定义一些metadata;S3没有明确的文件夹的概念,而是通过制定object的路径来实现;例如object可以是“photos/1.jpg”
- Buckets拥有全局名,名称由用户定义,用来存放Object,由于是全局名,所有要确保名字是唯一的;
- Keys:即bucket中每一个object的独一无二的标识符。上面例子中提到的photos/1.jpg就是一个key。
- Access Control Lists:访问控制表ACL。在S3中每一个bucket和object都有一个ACL,并且bucket和object的ACL是相互独立的。当用户发起一个访问请求,S3会检测ACL来核实请求发送者是否有权限访问这个bucket或object。
- Regions:我们可以指定bucket的具体物理存储区域(Region)。选择适当的区域可以优化延迟、减低成本。Amazon在世界各地建立了数据中心,目前S3支持下列区域:US Standard,US (Northern California),EU (Ireland),APAC (Singapore)。
云端为了提高数据可靠性,常用手段是在多个不同的服务器建立同一份数据的冗余备份(replica)。这样即使某一个服务器挂了,用户仍然能够从别的服务器取得他的数据。使用多份数据副本将带来数据一致性的问题,如何保证每一份副本的内容是一致的?如何保证多个用户可以并发读写?这在分布式系统设计中是一个经典的问题,
作为开发人员,我们也可以使用boto提供的API建立与Amazon云计算存储平台S3交互。boto是一个Amazon云计算服务的python接口,当然也有其他语言比如C++的接口libAWS,Java接口,Ruby接口,PHP接口,等等。这些API不仅仅用于S3,也可以用于EC2等其他云计算服务的调用。
Amazon S3 API的更多相关文章
- 实现多线程异步自动上传本地文件到 Amazon S3
最近抽空做个小工具,使用AWSSDK 对本地文件目录监控,并自动同步上传文件到S3 的过程,使用的是多线程异步上传,针对大文件进行了分块 参考文献: https://www.codeproject.c ...
- Amazon S3 功能介绍
一 .Amazon S3介绍 Amazon Simple Storage Service (Amazon S3) 是一种对象存储,它具有简单的 Web 服务接口,可用于在 Web 上的任何位置存储和检 ...
- Amazon S3 云服务
一.简介 Amazon Simple Storage Service (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片.视频.音乐和文档. S3 提供一个 REST ...
- Amazon S3
Amazon S3 是什么? Amazon S3 是亚马逊推出的一款存储服务,名为 Amazon Simple Storage Service,即亚马逊简单存储服务. 有些 S3 的概念需要了解一下: ...
- cosbench read异常解决办法。 Unable to verify integrity of data download. Client calculated content hash didn't match hash calculated by Amazon S3. The data may be corrupt.
问题:cosbench read测试failed 报错如下 Cosbench v0.4.2.c4 against Ceph (Hammer) / radosgw / HAproxy's HTTP en ...
- [AWS S3] Hosting a Static Website on Amazon S3
In this lesson, you will learn how to host a static website on Amazon S3. I will show you how to cre ...
- Amazon S3数据一致性模型
左右Amazon S3有两种类型的数据的一致性模型的: 最后,一致性和读一致性. 有下面几种行为: 1 写一个新的object,然后開始读它.直到全部的变化都传播完(副本),你才干读到它,否则就是ke ...
- [Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器
来到第7篇了!培养写作习惯真是不容易:) 在我的上一篇文章活用套件carrierwave gem:(1)在Rails实现图片上传功能,上传图片功能已经完成啦!但是目前图片仅能上传在自己的本地文件夹内孤 ...
- s3 api接口的调用
最近公司使用s3做文件存储服务器,因此在程序中需要调用s3的api,目前程序中使用了python和java版本的s3的api,简单做下记录,方便以后使用. 一.s3 api使用python版 1.安装 ...
随机推荐
- 添加EF上下文对象,添加接口、实现类以及无处不在的依赖注入(DI)
添加EF上下文对象,添加接口.实现类以及无处不在的依赖注入(DI) 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 上一章,我们介绍了安装和新建控制器.视图,这一章我们来创建 ...
- Oracle中强行断开用户连接的方法
版权声明:本文为博主原创文章,未经博主允许不得转载. 首先查找目标用户的当前进程,注意是serial#而不是serial,网上有的介绍漏掉了#: select sid,serial# from v$s ...
- J2SE知识点摘记(二十四)
覆写hashCode() 在明白了HashMap具有哪些功能,以及实现原理后,了解如何写一个hashCode()方法就更有意义了.当然,在HashMap中存取一个键值对涉及到的另外一个方法为equa ...
- 线程中的异常处理——怪不得所有的语句,都用try catch包的严严实实,甚至每个小步骤还要单独包起来
答案是:在线程中出现没处理的异常时,线程会自动终止. 以前刚看到别人的代码时候,十分惊讶,try catch几乎成了最主要的语句了,还以为是因为代码风格,或者更严谨一些的原因.到今天才明白,原来还不是 ...
- hadoop源码eclipse环境搭建-源码获取阶段
就目前了解,结合eclipse阅读和编译hadoop源码用两种方式:svn和git. 根据官方指南http://wiki.apache.org/hadoop/EclipseEnvironment 推荐 ...
- [Leetcode][Python]30: Substring with Concatenation of All Words
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 30: Substring with Concatenation of All ...
- javascript数组排序-----1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 关于json文本数据的一些使用方法
1.对象的存取 如果是对象的存取,可能需要序列化和反序列化对象的属性. NSDictionary params = @{@"hello":@"world"}; ...
- JVM参数
下面给出各种可以用户设置堆大小的命令行参数.注释列提供了一些设置参数的初级或高级建议.此外,后面还会给出更多的详细建议. 参数 描述 注释 -Xms<size> 设置堆的最小值 在生产阶段 ...
- JavaScript之<script>标签简介
向html页面中插入JavaScrpt的主要方法,就是使用<script>元素,下面是Html 4.01为<script>定义的6个属性. 1.async:可选表示应该立即下载 ...