阿里雲對象存儲服務(Object Storage Service,簡稱OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲存儲服務。它是一個分佈式的對象存儲服務,提供的是一個Key-Value對形式的對象存儲服務。用戶能夠根據Object的名稱(Key)惟一的獲取該Object的內容。它具備與平臺無關的RESTful API接口,可以提供99.99999999%的服務持久性。能夠在任何應用、任什麼時候間、任何地點存儲和訪問任意類型的數據。OSS適合各類網站、開發企業及開發者使用。html
1.2.1 存儲空間(Bucket)web
存儲空間是用於存儲對象(Object)的容器,全部的對象都必須隸屬於某個存儲空間。能夠設置和修改存儲空間屬性用來控制地域、訪問權限、生命週期等,這些屬性設置直接做用於該存儲空間內全部對象,所以能夠經過靈活建立不一樣的存儲空間來完成不一樣的管理功能。安全
1.2.2 對象/文件(Object)服務器
對象是OSS存儲數據的基本單元,也被稱爲OSS的文件。對象由元信息(Object Meta),用戶數據(Data)和文件名(Key)組成。對象由存儲空間內部惟一的Key來標識。對象元信息是一個鍵值對,表示了對象的一些屬性,好比最後修改時間、大小等信息,同時用戶也能夠在元信息中存儲一些自定義的信息。網絡
根據不一樣的上傳方式,對象的大小限制是不同的。分片上傳最大支持48.8TB的對象大小,其餘的上傳方式最大支持5GB。併發
對象的生命週期是從上傳成功到被刪除爲止。在整個生命週期內,對象信息不可變動。重複上傳同名的對象會覆蓋以前的對象,所以,OSS不支持修改文件的部份內容等操做。分佈式
OSS提供了追加上傳功能,用戶可使用該功能不斷地在Object尾部追加寫入數據。工具
1.2.3 Region(地域)性能
Region表示OSS的數據中心所在的地域,物理位置。用戶能夠根據費用、請求來源等綜合選擇數據存儲的Region。通常來講,距離用戶更近的Region訪問速度更快。目前已開通的Region詳見[1]。優化
Region是在建立Bucket的時候指定的,一旦指定以後就不容許更改,該Bucket下全部的Object都存儲在對應的數據中心,目前不支持Object級別的Region設置。
1.2.4 Endpoint(訪問域名)
Endpoint表示OSS對外服務的訪問域名。OSS以HTTP RESTful API的形式對外提供服務,當訪問不一樣的Region的時候,須要不一樣的域名。經過內網和外網訪問同一個Region所須要的Endpoint也是不一樣的。
1.2.5 AccessKey(訪問密鑰)
AccessKey,簡稱AK,指的是訪問身份驗證中用到的AccessKeyId和AccessKeySecret。OSS經過使用AccessKeyId和AccessKeySecret對稱加密的方法來驗證某個請求的發送者身份。AccessKeyId用於標識用戶,AccessKeySecret是用戶用於加密簽名字符串和OSS用來驗證簽名字符串的密鑰,其中AccessKeySecret必須保密。
更多基本概念詳見[2]
1.4.1 簡單上傳
適用場景
簡單上傳指的是用戶使用OSS API中的Put Object方法上傳單個Object,能夠適用在任何一次HTTP請求交互便可完成上傳的場景,好比小文件的上傳。
上傳限制
1.4.2 大文件上傳
OSS支持單個文件的大小,從0~48.8TB。當咱們上傳大文件時,可能會有如下場景:
以上狀況下,可使用分片段點續傳方式或ossutil工具上傳。
1.4.2.1 分片段點續傳
當使用SDK或API上傳大文件時,可使用分片段點續傳方式。分片段點續傳方式使用於如下場景:
在這種上傳方式下,Object的大小是由Part來決定的。最大支持10000塊Part,每塊最小100KB(最後一塊能夠比100KB小),最大5GB。
1.4.2.2 ossutil上傳
當須要使用工具(而不是使用API、SDK編寫代碼)上傳單個或多個大文件時,可使用工具ossutil。
1.4.2.3 ossimport上傳
若是須要上傳大批量的文件(包括大文件)到OSS,也可使用ossimport工具。
說明:當文件數目不是特別多,建議優先使用ossutil。
文件系統是一種典型的樹狀索引結構,能夠很輕易的支持文件夾的操做,好比重命名目錄、刪除目錄、移動目錄等。對於OSS來講,能夠經過一些操做來模擬相似的功能,可是代價很是昂貴。好比重命名目錄,但願將test1目錄重命名成test2,那麼OSS的實際操做是將全部以test1/開頭的Object都從新複製成以test2/開頭的Object,這是一個很是消耗資源的操做。所以在使用OSS的時候要儘可能避免相似的操做。
OSS保存的Object不支持修改(追加寫Object須要調用特定的接口,生成的 Object也和正常上傳的Object類型上有差異)。用戶哪怕是僅僅須要修改一個字節也須要從新上傳整個Object。而文件系統的文件支持修改,好比修改指定偏移位置的內容、截斷文件尾部等,這些特色也使得文件系統擁有普遍的適用性。但另一方面,OSS能支持海量的用戶併發訪問,而文件系統會受限於單個設備的性能。
使用OSS應該充分發揮其優勢,即海量數據處理能力,優先用來存儲海量的非結構化數據,好比圖片、視頻、文檔等。
1.8.1 存儲類型
OSS提供標準、低頻訪問、歸檔三種存儲類型。
標準存儲類型
提供通用的對象存儲服務,適合頻繁訪問、有熱點存在的各種音視頻、圖片、網站靜態資源的存儲,支持高吞吐計算場景,適合各種計算資源的存儲。
低頻訪問存儲類型
適合長期保存、較少訪問的數據,適合各種移動應用、智能設備、企業數據的備份,低頻訪問支持實時數據訪問。
歸檔存儲類型
在三種存儲類型中單價最低,適合須要長週期保存的檔案數據、醫療影像、科學資料、影視素材,能有效優化長期存儲成本。保存爲歸檔存儲類型的數據,恢復到可讀取狀態須要等待1分鐘的解凍時間。
1.8.1.2 計費方式
阿里雲OSS採用兩種計費方式:按量付費(後付費)和包年包月(預付費)。
按量付費
用戶先在阿里雲帳戶充值,系統每小時統計前一小時的實際用量並進行結算,從帳戶餘額中扣除實際消費金額,實際使用量能夠經過控制檯查看。按量付費支持全部的存儲類型。OSS 的計量項包括存儲量、流量、請求次數、數據處理。
包年包月
已使用的OSS資源在已購買的資源包規格內不收費,超過部分按量付費。包年包月目前只支持標準存儲類型。
詳細價格總覽和價格計算器見[3][4]
若需自建至服務器程度,建議使用oss
若僅自建上傳接口,建議自建,成本更低
[1]訪問域名和數據中心 https://help.aliyun.com/document_detail/31837.html?spm=5176.doc31827.2.6.UzcCzu
[2]基本概念介紹 https://help.aliyun.com/document_detail/31827.html?spm=5176.doc52830.2.4.84wBlj
[3]詳細價格總覽https://www.aliyun.com/price/product?spm=5176.doc48266.2.6.YzYwYC#/oss/detail
[4]價格計算器https://www.aliyun.com/price/product?spm=5176.doc48266.2.6.YzYwYC#/oss/calculator