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++的接口libAWSJava接口Ruby接口PHP接口,等等。這些API不僅僅用於S3,也可以用於EC2等其他雲計算服務的調用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM