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