隨著互聯網的高速發展,越來越多的企業業務遷移上云,業務對于云上的存儲需求量也快速增加。這時候就需要一種方法讓數據處理起來更簡單,另外支持擴展性、便于訪問信息。在這特定的環境下,衍生出了OSS對象存儲產品。什么是OSS對象存儲?OSS對象存儲有什么優勢?
什么是OSS對象存儲?OSS對象存儲是為企業用戶提供的一種安全穩定、低成本、高可用的非結構化云存儲服務,解決用戶海量數據管理問題;且使用對象存儲可以在互聯網任意位置存儲和訪問,具有無上限、彈性拓展、多類型等特點。
OSS對象存儲主要有以下幾個優勢:
1、穩定可靠:對象存儲具有多重冗余架構設計;且基于高可用架構設計,消除單節點故障,跨數據中心的副本冗余,能夠保障服務的高可用性,確保數據業務的持續性;
2、安全合規:支持服務端加密、客戶端加密、防盜鏈、IP黑白名單、細粒度權限管控、日志審計、WORM特性,并獲得多項合規認證,滿足企業數據安全與合規要求;
3、智能存儲:存儲空間無上限,無需擔心擴容問題,能夠實現存儲需求的彈性伸縮;并且提供多種數據處理能力,無縫對接快快云服務器等產品,從而提高業務靈活性;
4、低成本:無需傳統硬件的采購、部署和運維,從而節省了運維工作和托管成本,有效避免存儲及帶寬資源的閑置浪費,降低企業的數據管理與存儲成本。

阿里云對象存儲OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存儲服務,可提供99.9999999999%(12個9)的數據持久性,99.995%的數據可用性。多種存儲類型供選擇,全面優化存儲成本。
OSS具有與平臺無關的RESTful API接口,您可以在任何應用、任何時間、任何地點存儲和訪問任意類型的數據。
您可以使用阿里云提供的API、SDK接口或者OSS遷移工具輕松地將海量數據移入或移出阿里云OSS。數據存儲到阿里云OSS以后,您可以選擇標準存儲(Standard)作為移動應用、大型網站、圖片分享或熱點音視頻的主要存儲方式,也可以選擇成本更低、存儲期限更長的低頻訪問存儲(Infrequent Access)、歸檔存儲(Archive)、冷歸檔存儲(Cold Archive)作為不經常訪問數據的存儲方式。
OSS工作原理
數據以對象(Object)的形式存儲在OSS的存儲空間(Bucket )中。如果要使用OSS存儲數據,您需要先創建Bucket,并Bucket的地域、訪問權限、存儲類型等屬性。創建Bucket后,您可以將數據以Object的形式上傳到Bucket,并Object的文件名(Key)作為其標識。
OSS以HTTP RESTful API的形式對外提供服務,訪問不同地域需要不同的訪問域名(Endpoint)。當您請求訪問OSS時,OSS通過使用訪問密鑰(AccessKey ID和AccessKey Secret)對稱加密的方法來驗證某個請求的發送者身份。
Object操作在OSS上具有原子性和強一致性。
存儲空間存儲空間是用戶用于存儲對象(Object)的容器,所有的對象都必須隸屬于某個存儲空間。存儲空間具有各種配置屬性,包括地域、訪問權限、存儲類型等。用戶可以根據實際需求,創建不同類型的存儲空間來存儲不同的數據。
對象對象是OSS存儲數據的基本單元,也被稱為OSS的文件。和傳統的文件系統不同,對象沒有文件目錄層級結構的關系。對象由元信息(Object Meta),用戶數據(Data)和文件名(Key)組成,并且由存儲空間內部的Key來標識。對象元信息是一組鍵值對,表示了對象的一些屬性,比如最后修改時間、大小等信息,同時用戶也可以在元信息中存儲一些自定義的信息。
對象名稱在各語言SDK中,ObjectKey、Key以及ObjectName是同一概念,均表示對Object執行相關操作時需要填寫的Object名稱。例如向某一存儲空間上傳Object時,ObjectKey表示上傳的Object所在存儲空間的完整名稱,即包含文件后綴在內的完整路徑,如填寫為abc/efg/123.jpg。
地域Region表示OSS的數據中心所在物理位置。用戶可以根據費用、請求來源等選擇合適的地域創建Bucket。一般來說,距離用戶更近的Region訪問速度更快。更多信息,請參見訪問域名和數據中心。
訪問域名Endpoint表示OSS對外服務的訪問域名。OSS以HTTP RESTful API的形式對外提供服務,當訪問不同的Region的時候,需要不同的域名。通過內網和外網訪問同一個Region所需要的Endpoint也是不同的。例如杭州Region的外網Endpoint是oss-cn-,內網Endpoint是oss-cn-hangzhou-。更多信息,請參見訪問域名和數據中心。
訪問密鑰AccessKey簡稱AK,指的是訪問身份驗證中用到的AccessKey ID和AccessKey Secret。OSS通過使用AccessKey ID和AccessKey Secret對稱加密的方法來驗證某個請求的發送者身份。AccessKey ID用于標識用戶;AccessKey Secret是用戶用于加密簽名字符串和OSS用來驗證簽名字符串的密鑰,必須保密。
強一致性Object操作在OSS上具有原子性,操作要么成功要么失敗,不會存在有中間狀態的Object。OSS保證用戶一旦上傳完成之后讀到的Object是完整的,OSS不會返回給用戶一個部分上傳成功的Object。Object操作在OSS同樣具有強一致性,用戶一旦收到了一個上傳(PUT)成功的響應,該上傳的Object就已經立即可讀,且數據已經冗余寫入到多個設備中。不存在上傳的中間狀態,即不會出現read-after-write卻無法讀取到數據的情況。刪除操作也類似,即用戶成功刪除的Object后,該Object立即變為不存在。
關于OSS基本概念的完整介紹,請參見基本概念。
OSS重要特性版本控制版本控制是針對存儲空間(Bucket)級別的數據保護功能。開啟版本控制后,針對數據的覆蓋和刪除操作將會以歷史版本的形式保存下來。您在錯誤覆蓋或者刪除文件(Object)后,能夠將Bucket中存儲的Object恢復至任意時刻的歷史版本。有關版本控制的更多信息,請參見版本控制介紹。
Bucket PolicyBucket擁有者可通過Bucket Policy不同用戶以何種權限訪問的OSS資源。例如您需要進行跨賬號或對匿名用戶訪問或管理整個Bucket或Bucket內的部分資源,或者需要對同賬號下的不同RAM用戶授予訪問或管理Bucket資源的不同權限,例如只讀、讀寫或控制的權限等。有關配置Bucket Policy的操作步驟,請參見通過Bucket Policy用戶訪問資源。
跨區域復制跨區域復制(Cross-Region Replication)是跨不同OSS數據中心(地域)的Bucket自動、異步(近實時)復制Object,它會將Object的創建、更新和刪除等操作從源存儲空間復制到不同區域的目標存儲空間。跨區域復制功能滿足Bucket跨區域容災或用戶數據復制的需求。有關跨區域復制的更多信息,請參見跨區域復制。
數據加密服務器端加密:上傳文件時,OSS對收到的文件進行加密,再將得到的加密文件持久化保存;下載文件時,OSS自動將加密文件解密后返回給用戶,并在返回的HTTP請求Header中,聲明該文件進行了服務器端加密。有關服務器端加密的更多信息,請參見服務器端加密。客戶端加密:將文件上傳到OSS之前在本地進行加密。有關客戶端加密的更多信息,請參見客戶端加密。
數據保存除以下情況以外,OSS默認保存上傳至Bucket的數據:通過OSS控制臺、API、SDK、ossutil或者ossbrowser等工具手動刪除數據。更多信息,請參見刪除文件。通過生命周期規則在時間內自動刪除數據。更多信息,請參見基于次修改時間的生命周期規則介紹。OSS停服后15天內未補足欠款。更多信息,請參見欠費停服說明。
關于OSS功能特性的完整介紹,請參見功能特性。
OSS使用方式OSS提供多種靈活的上傳、下載和管理方式。
通過控制臺管理OSSOSS提供了Web服務頁面,您可以登錄OSS控制臺管理您的OSS資源。更多信息,請參見OSS管理控制臺概覽。
通過API或SDK管理OSSOSS提供RESTful API和各種語言的SDK開發包,方便您快速進行二次開發。更多信息,請參見OSS API參考和OSS SDK參考。
通過工具管理OSSOSS提供圖形化管理工具ossbrowser、命令行管理工具ossutil、FTP管理工具ossftp等各種類型的管理工具。更多信息,請參見OSS常用工具。
通過云存儲網關管理OSSOSS的存儲空間內部是扁平的,沒有文件系統的目錄等概念,所有的對象都直接隸屬于其對應的存儲空間。如果您想要像使用本地文件夾和磁盤那樣來使用OSS存儲服務,可以通過配置云存儲網關來實現。更多信息,請參見云存儲網關產品詳情頁面。
OSS定價傳統的存儲服務供應商會要求您購買預定量的存儲和網絡傳輸容量,如果超出此容量,就會關閉對應的服務或者收取高昂的超容量費用;如果沒有超過此容量,又需要您按照全部容量支付費用。
OSS僅按照您的實際使用容量收費,您無需預先購買存儲和流量容量,隨著您業務的發展,您將享受到更多的基礎設施成本優勢。
關于OSS的價格,請參見OSS產品定價。關于OSS的計量計費方式,請參見計量項和計費項。
其他相關服務您把數據存儲到OSS以后,就可以使用阿里云提供的其他產品和服務對其進行相關操作。
以下是您會經常使用到的阿里云產品和服務:
圖片處理:對存儲在OSS上的圖片進行格式轉換、縮放、裁剪、旋轉、添加水印等各種操作。更多信息,請參見快速使用OSS圖片處理服務。
云服務器ECS:提供簡單高效、處理能力可彈性伸縮的云端計算服務。更多信息,請參見ECS產品詳情頁面。
內容分發網絡CDN:將OSS資源緩存到各區域的邊緣節點,利用邊緣節點緩存的數據,提升同一個文件,被邊緣節點客戶大量重復下載的體驗。更多信息,請參見CDN產品詳情頁面。
E-MapReduce:構建于ECS上的大數據處理的系統解決方案,基于開源的Apache Hadoop和Apache Spark,方便您分析和處理自己的數據。更多信息,請參見E-MapReduce產品詳情頁面。
媒體處理:將存儲于OSS的音視頻轉碼成適合在PC、TV以及移動終端上播放的格式。并基于海量數據深度學習,對音視頻的內容、文字、語音、場景多模態分析,實現智能審核、內容理解、智能編輯。更多信息,請參見媒體處理產品詳情頁面。
在線遷移服務:您可以使用在線遷移服務將第三方數據源,如亞馬遜AWS、谷歌云等數據輕松遷移至OSS。更多信息,請參見在線遷移服務使用教程。
離線遷移服務:如果您有TB或PB級別的海量數據需要上傳到OSS,但本地的網絡帶寬不夠,擴容成本高,可以使用閃電立方離線數據遷移服務。

基本概念
存儲空間(Bucket)
存儲空間是用戶用于存儲對象(Object)的容器,所有的對象都必須隸屬于某個存儲空間。存儲空間具有各種配置屬性,包括地域、訪問權限、存儲類型等。用戶可以根據實際需求,創建不同類型的存儲空間來存儲不同的數據。
同一阿里云賬號在同一地域內創建的存儲空間總數不能超過100個。
存儲空間名稱在OSS范圍內必須全局。有關存儲空間的命名規范,請參見存儲空間命名。
存儲空間創建后,其名稱、所處地域、存儲類型、冗余類型不支持修改。
單個存儲空間的容量不限制。
存儲空間的命名規范如下:
Bucket名稱在OSS范圍內必須全局。
只能包括小寫字母、數字和短劃線(-)。
必須以小寫字母或者數字開頭和結尾。
長度為3~63個字符。
對象(Object)對象是OSS存儲數據的基本單元,也被稱為OSS的文件。和傳統的文件系統不同,對象沒有文件目錄層級結構的關系。對象由元信息(Object Meta),用戶數據(Data)和文件名(Key)組成,并且由存儲空間內部的Key來標識。對象元信息是一組鍵值對,表示了對象的一些屬性,比如最后修改時間、大小等信息,同時用戶也可以在元信息中存儲一些自定義的信息。
對象的生命周期是從上傳成功到被刪除為止。在整個生命周期內,除通過追加方式上傳的Object可以通過繼續追加上傳寫入數據外,其他方式上傳的Object內容無法編輯,您可以通過重復上傳同名的對象來覆蓋之前的對象。
對象的命名規范如下:
使用UTF-8編碼。
長度必須在1~1023字符之間。
不能以正斜線(/)或者反斜線(/)開頭。
ObjectKey
在各語言SDK中,ObjectKey、Key以及ObjectName是同一概念,均表示對Object執行相關操作時需要填寫的Object名稱。例如向某一存儲空間上傳Object時,ObjectKey表示上傳的Object所在存儲空間的完整名稱,即包含文件后綴在內的完整路徑,如填寫為abc/efg/123.jpg。
Region(地域)Region表示OSS的數據中心所在物理位置。用戶可以根據費用、請求來源等選擇合適的地域創建Bucket。一般來說,距離用戶更近的Region訪問速度更快。更多信息,請參見訪問域名和數據中心。
Region是在創建Bucket的時候的,一旦之后就不允許更改。該Bucket下所有的Object都存儲在對應的數據中心,目前不支持Object級別的Region設置。
Endpoint(訪問域名)Endpoint表示OSS對外服務的訪問域名。OSS以HTTP RESTful API的形式對外提供服務,當訪問不同的Region的時候,需要不同的域名。通過內網和外網訪問同一個Region所需要的Endpoint也是不同的。例如杭州Region的外網Endpoint是oss-cn-,內網Endpoint是oss-cn-hangzhou-。更多信息,請參見訪問域名和數據中心。
AccessKey(訪問密鑰)AccessKey簡稱AK,指的是訪問身份驗證中用到的AccessKey ID和AccessKey Secret。OSS通過使用AccessKey ID和AccessKey Secret對稱加密的方法來驗證某個請求的發送者身份。AccessKey ID用于標識用戶;AccessKey Secret是用戶用于加密簽名字符串和OSS用來驗證簽名字符串的密鑰,必須保密。
AccessKey包含以下三種:
Bucket的擁有者申請的AccessKey。
被Bucket的擁有者通過RAM給第三方請求者的AccessKey。
被Bucket的擁有者通過STS給第三方請求者的AccessKey。
強一致性
Object操作在OSS上具有原子性,操作要么成功要么失敗,不會存在有中間狀態的Object。OSS保證用戶一旦上傳完成之后讀到的Object是完整的,OSS不會返回給用戶一個部分上傳成功的Object。
Object操作在OSS同樣具有強一致性,用戶一旦收到了一個上傳(PUT)成功的響應,該上傳的Object就已經立即可讀,且數據已經冗余寫入到多個設備中。不存在上傳的中間狀態,即不會出現read-after-write卻無法讀取到數據的情況。刪除操作也類似,即用戶成功刪除的Object后,該Object立即變為不存在。