本文主要面向新浪云存儲服務的開發(fā)者,開發(fā)者可通過此文學習如何使用新浪云存儲進行開發(fā)
新浪云存儲,即SCS(Sina Cloud Storage),提供object網(wǎng)絡存儲服務,旨在利用新浪在分布式以及網(wǎng)絡技術方面的優(yōu)勢為開發(fā)者提供安全、簡單、高效的存儲服務。
新浪云存儲提供了一系列簡單易用的RESTful API、SDK、工具和方案,使得開發(fā)者通過網(wǎng)絡即可隨時、隨地存儲任何類型的數(shù)據(jù)、進行安全分享及靈活的資源訪問權限管理。
通過使用新浪云存儲服務,開發(fā)者可以輕松地開發(fā)出擴展性強、穩(wěn)定性好、安全快速的分布式網(wǎng)絡服務;通過使用云存儲服務提供的API、SDK及管理平臺,開發(fā)者也可以迅速開發(fā)出適合各種業(yè)務的網(wǎng)絡程序。
新浪云存儲可以支持文本、多媒體、二進制等任何類型的數(shù)據(jù),支持簽名認證及ACL權限設置進行資源訪問控制,開發(fā)者可以通過管理控制臺直接進行上傳、下載或通過RESTful API、Shell Tool、SDK、curl等方式實現(xiàn)上傳、下載。
存儲部署設計針對大陸互聯(lián)網(wǎng)特點,數(shù)據(jù)和接入點部署在多個機房,覆蓋網(wǎng)通、電信、移動等多家運營商。整個系統(tǒng)支持4個副本,可靠性達到99.999999999%。文件的多機房分發(fā),一次上傳保證各個運營商內都能快速訪問。
新浪云存儲服務主要提供以下功能供開發(fā)者使用:
# | 功能 | 描述 |
---|---|---|
1 | 支持任何類型數(shù)據(jù)的上傳和下載 | 文本、多媒體、日志、二進制等類型數(shù)據(jù) |
2 | 元信息機制 | 開發(fā)者可以使用通用的和自定義的元信息機制來定義資源屬性。 |
3 | 容量無限制 | 對object的個數(shù)沒有限制;云存儲提供分片上傳接口,可以實現(xiàn)T級超大文件的上傳和下載。 |
4 | 分片上傳、斷點下載功能 | 該功能在網(wǎng)絡不穩(wěn)定的環(huán)境下具有非常好的表現(xiàn) |
5 | 兼容AmazonS3的RESTful風格的HTTP接口和多語言SDK及工具 | 了解RESTful的相關信息,可參考http://en.wikipedia.org/wiki/Representational_State_Transfer |
6 | 簽名認證方案 | 基于公鑰和密鑰的認證方案可適應靈活的業(yè)務需求 |
7 | 強大的ACL權限控制 | 開發(fā)者可通過ACL設置資源的權限(公開或私有),也可授權特定用戶具有特定權限 |
8 | 功能完善的控制臺 | 開發(fā)者可通過管理控制臺對所有資源進行統(tǒng)一管理 |
9 | 靜態(tài)網(wǎng)頁托管 | 開發(fā)者可通過將靜態(tài)頁面上傳至云存儲空間中,并將其訪問權限設置為公開讀,即可實現(xiàn)靜態(tài)網(wǎng)站的效果 |
云存儲bucket可以看成是命名空間,其名稱全局唯一,如果某個名稱已創(chuàng)建,則其他開發(fā)者將無法再創(chuàng)建相同名稱的bucket;開發(fā)者上傳的任何數(shù)據(jù)必須是屬于某個bucket。上傳任何數(shù)據(jù)之前需先確認是否已經(jīng)創(chuàng)建bucket。 有關bucket的命名限制,請參考 #約束與限制。
創(chuàng)建bucket有以下兩種方式:
通過控制臺創(chuàng)建
通過使用put bucket API創(chuàng)建
如果您的bucket名稱為:my-bucket
, 則可以通過如下方式訪問資源:
https://my-bucket
.sinacloud.net/path/to/my/file.txt
https://sinacloud.net/my-bucket
/path/to/my/file.txt
object是SCS中的基本存儲實體,由Key(鍵)、Data(數(shù)據(jù))及MetaData (元數(shù)據(jù))組成。
指object的唯一標識. 有關object的命名限制,請參考#約束與限制. 如: path/to/my/file.txt
object可支持文本、多媒體、二進制等任何類型的數(shù)據(jù),開發(fā)者可以利用Object相關API實現(xiàn)上傳、下載及獲取object列表的功能。
存儲object的相關屬性的描述性信息,為 key-value 組合
為提高用戶使用的安全性,云存儲服務支持通過使用用戶簽名來驗證請求者的身份。了解詳細信息,請參考《簽名算法》
ACL: 訪問控制列表 (Access Control List)
云存儲通過ACL實現(xiàn)資源的權限認證,開發(fā)者可以通過設置ACL來實現(xiàn)復雜的資源管理。 開發(fā)者通過使用API可以更新bucket或者object的ACL policy,有關ACL policy的詳細說明請參考ACL的相關內容。
bucket名稱、object key、meta、ACL內容等只支持UTF-8編碼
訪問資源的url要進行rawurlencode編碼
object key除了“/”以外需要進行rawurlencode編碼
新浪云存儲的API具有以下限制:
API中的bucket和object的命名需符合以下規(guī)則:
bucket命名:
云存儲內全局唯一;
由小寫字母、數(shù)字及“-”組成,長度為6~63位;
不能以數(shù)字、‘-’開頭;
不能以‘-’開頭或結尾;
或者使用域名的名命名規(guī)則,例如:xxx.foo.com.cn,方便綁定您的域名
object命名:
key長度不超過128個字節(jié);
key除了“/”以外需要進行rawurlencode編碼