Amazon S3 API

原文: http://www.cnblogs.com/chris-cp/p/4835507.html

一、概述  

  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等其他雲計算服務的調用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章