[OSS] 對象存儲(OSS)概述

0 序

  • 本文屬筆記型博文。

目標讀者:博主本人

  • 本文OSS的描述內容,主要參考阿里雲的OSS產品。

1 對象存儲-概述

1.1 什麼是對象存儲OSS?

  • 對象存儲服務Object Storage Service)是阿里雲等雲平臺提供的海量、安全、低成本、高可靠的雲存儲服務,提供與平臺無關RESTful API接口,提供99.999999999%的服務持久性

  • 優勢:
  • 海量、安全、低成本、高可靠
  • 按量收費,無需擔心存儲容量

  • 主要功能:
  • 任何時間、任何地點、任何平臺上對數據進行上傳和下載
  • 通過API或WEB頁面方式管理海量數據
  • 彈性擴展:海量存儲空間,隨時增加
  • 大規模:支持同一時間內高併發,大流量的讀寫訪問
  • 圖片處理:支持縮略、裁剪、水印、壓縮和格式轉換
  • 按量付費:存儲量、流量、請求次數付費

1.2 對象存儲OSS的特點

OSS產品特點一:穩定

  • 服務可用性不低於99.9%
  • 規模自動擴展
  • 數據三冗餘備份,持久性99.999999999%

OSS產品特點二:低成本

  • OSS使用成本很低
  • 內網地址訪問免流量費
  • 無需運維投入

OSS產品特點三:安全

  • 結合雲盾防DDos系統
  • 多種安全認證機制
  • 提供訪問日誌,有助於追查非法訪問

OSS產品特點四:大規模、高性能

  • 存儲容量無限擴展
  • 處理能力彈性增加
  • 多線BGP網絡,各運營商訪問流暢

1.3 對象存儲OSS的應用場景

  • 場景1:OSS適合作爲應用程序的持久化存儲
  • 持久保存文件(附件、圖片、視頻)
  • RDS數據庫MySQL
  • 場景2:數據處理
  • 圖片處理:提供裁剪、旋轉、水印、縮放
  • 媒體轉碼:音視頻格式轉換
  • 場景3:海量存儲
  • 管理音視頻資源
  • 網絡攝像機直存
  • 管理海量的物聯網設備數據(例如:車聯網領域————CAN報文等)
  • 軟件系統的日誌
  • 場景4:動靜態資源分離
  • 動態資源:數據庫記錄
  • 靜態資源:圖片、附件、音視頻資源的超低延時傳輸

1.4 對象存儲OSS的計費模式

OSS費用構成(按量付費[主要類型]、包年包月)

  • 結算方式:
  • 按量付費:
  • 開通OSS後,默認付費方式
  • 按小時時間
  • 計費公式:實際資源使用量*每小時單價
  • 包年包月:
  • 資源包的形式提供,超出部分按量付費
  • 資源包類型:
  • 1、存儲包、下行流量包、回源流量包三種類型
  • 2、地域資源包和全國通用資源包兩大類
  • 存儲費用:
  • 標準存儲類型
  • 實際存儲量
  • 低頻/歸檔存儲類型
  • 實際存儲量
  • 存儲實際未滿指定天數的存儲容量
  • 數據取回量
  • 流量費用:
  • 外網流出流量
  • CDN回源流出流量
  • 跨區域複製流量
  • 請求費用:
  • 請求次數
  • 數據處理費用:
  • 圖片處理
  • 視頻截幀

2 對象存儲的概念與原理

2.1 基本概念

OSS數據組織結構

  • OSS數據組織結構

Bucket/桶

  • 定義
  • 同一用戶、同一地域創建的存儲空間不超過30個,名稱全局唯一
  • 存儲空間一旦創建,名稱、所處地域、存儲類型不能修改
  • 單個存儲空間的容量不限制
  • Bucket的解釋說明:
  • Bucket是OSS上的命名空間
  • Bucket名稱在整個OSS服務中具有全局唯一性,不能修改
  • 一個應用,例如圖片,可以對應一個或多個Bucket中
  • 一個用戶在同一地域下最多可以創建30個Bucket,每個Bucket中存放的Object沒有限制,存儲容量沒有限制
  • Bucket命名規則:
  • 只能包括小寫字母、數字或短橫線
  • 必須以小寫字母或數字開頭和結尾
  • 長度必須在3-63字節之間
  • Bucket的使用:
  • 創建Bucket
  • 設置Bucket權限
  • 查看Bucket信息
  • 刪除Bucket信息

Object

  • 定義
  • 每個文件都是一個Object
  • 文件大小限制
  • 控制檯最大不超過5G,斷點續傳方式
  • 上傳的文件大小不超過48.8TB
  • OSS支持上傳同名文件,但會覆蓋已有文件
  • Object的解釋說明:
  • Object是OSS存儲數據的基本單元,也稱爲OSS的文件
  • Object由元信息(Object Meta),用戶數據(Data),文件名(Key)組成,對象由存儲空間內部唯一的Key來標識。
  • 用戶可根據自己的需要在元信息中存儲一些自定義信息
  • 根據不同的上傳方式,Object的大小限制是不一樣的,分片上傳最大支持48.8TB的對象大小,其他的上傳方式最大支持5GB
  • Object展現形式爲文件或文件夾
  • Object命名規則:
  • 使用UTF-8編碼
  • 長度必須在1-1023字節之間
  • 不能以“/”或者“\”字符開頭
  • 區分大小寫
  • OSS控制檯可以上傳小於5G的文件,大於5G通過SDK或者API分片上傳
  • 獲取文件訪問地址
  • Bucket或Object的讀寫權限爲非私有,可以通過URL來訪問該文件

Bucket或Object的讀寫權限爲私有,OSS按照URL有效時間生成帶簽名字符串的URL

  • OSS Object 的使用 :設置文件HTTP頭

HTTP標準屬性

名稱 描述
Content-Type 該Object文件類型
Content-Encoding 指定該Object被下載時的內容編碼格式
Cache-Control 指定該Object被下載時的網頁緩存行爲
Content-Disposition 指定該Object被下載時的名稱
Content-Language 指定該Object被下載時的內容語言編碼
Expires 過期時間
  • OSS Object 的使用 : 用戶自定義元數據(User Meta)

  • OSS Object 的使用 : 刪除文件

  • 單個刪除,指定刪除某個Object
  • 批量刪除,控制檯批量刪除一次最多可指定1000個Object
  • 自動刪除,使用生命週期管理來完成
  • OSS Object 的使用 : 碎片管理
  • 碎片
  • 碎片是使用分片上傳模式,需要調用Compute Ultipart Upload將這些碎片組合成一個完整的Object
  • 可通過控制檯查看或刪除產生的碎片

AK(AccessKey ID & Secret)

  • 用於標識用戶,爲訪問OSS做簽名驗證

Endpoint(訪問域名)

  • OSS對外服務的訪問域名
  • HTTP RESTful API對外提供服務
  • 訪問不同地域的時候,需要不同的域名
  • 同一地域下,內外網的Endpoint也是不同的

2.2 OSS 訪問的Bucket、域名和數據中心

  • Bucket數據中心的關係
  • Bucket是地域內作用的資源,可按照費用單價,請求來源分佈,網絡延遲
  • Bucket一旦創建完成,不可修改所屬的數據中心
  • OSS支持Bucket級別的數據中心設置,不支持Object級別設置數據中心
  • Bucket訪問域名

Bucket的三級域名(API GetService)

  • 域名構成規則是:Bucket 名字 + . + EndPoint
  • EndPoint依據Bucket所在地域的不同,內外網訪問方式的有所區別

  • Bucket內網訪問
  • 只有ECS實例可通過Bucket內網地址訪問
  • ECS實例與Bucket在同一地域,如不在同一地域,需使用外網Bucket外網域名訪問

  • Object訪問地址構成規則

Bucket權限爲公共讀或公共讀寫時,Object的訪問規則如下:

http://<bucket名字>.<endpoint>/<object名字>

例如: http://acper.oss-cn-beijing.aliyuncs.com/acper.jpg

訪問Object

可直接將URL鏈接寫入HTML中訪問Object
例如:<img src="http://acper.oss-cn-beijing.aliyuncs.com/acper.jpg">

2.3 OSS 自定義域名綁定

  • 域名綁定說明:
  • OSS Bucket未綁定域名時,通過瀏覽器訪問Object的URL,則爲:強制下載模式
  • 支持OSS域名綁定CName,目前僅支持OSS三級域名訪問訪問,即配置方式爲Bucket_name.endpoint
  • 綁定的域名,需提供工信部備案號
  • 每個Bucket可以綁定20個域名
  • 可通過域名TXT記錄的方式驗證域名所有權

例如:http://osstest.acper.net

  • 訪問地址:

2.Y OSS的其他設置

2.Y.1 防盜鏈設置

  • 適用場景:爲了減少存儲於OSS數據被他人盜鏈而產生額外費用

  • 防盜鏈設置:

  • OSS是按量收費的服務
  • OSS基於HTTP Header中的字段Referer的防盜鏈方法
  • 每個Refer白名單使用換行符,支持通配符(*,?)
  • 1、白名單爲空
  • 不會檢查Referer字段是否爲空
  • 2、白名單不爲空
  • 設置了不允許Referer字段爲空的規則,則只有Referer屬於白名單的請求被允許
  • 設置了允許Referer字段爲空的規則,則Referer爲空的請求和符合白名單的請求被允許,其他請求會被拒絕。如果使用瀏覽器直接訪問,需設置Referer字段爲空。

2.Y.2 靜態網站託管

  • 適用場景:網站靜態內容存儲在OSS Bucket中

  • 靜態網站託管

  • OSS支持靜態網站託管
  • 通過控制檯將存儲空間配置成靜態網站託管模式
  • 支持索引和404默認頁面
  • 爲空,則不啓用靜態網站託管

2.Y.3 圖片處理

  • 圖片服務特點:

海量、安全、低成本、高可靠的圖片處理服務
調用簡單:RESTful接口調用
不受時間、地點、設備的限制
隨OSS服務一併開通

  • 圖片服務提供功能:

圖片縮放、裁剪、旋轉;
添加圖片,文字,圖文混合水印;
圖片格式轉換
自定義圖片處理樣式
通過管道順序調用多種圖片處理功能
獲取圖片信息

  • 服務規則:

  • 通過URL的形式(RESTful)

  • Bucket:用戶的IMG頻道

  • endpoint:用戶的Bucket所在數據中心的訪問域名

  • Object:用戶操作圖片的基本數據單元是Object

  • action:用戶對圖片的操作

  • parame:用戶對圖片操作對應的參數

  • 多個action之間的組合形式

  • 常用action列表:

  • 圖片服務概念:
  • 樣式 : 爲了避免URL過長,action保存成別名,即樣式style
    URL方式訪問

分隔符方式訪問

分隔符支持-、_、/、!

2.Y.4 安全控制

  • 數據安全:

三副本機制,盤古分佈式文件系統,提供物理層面的高可靠性

  • 安全控制:

OSS提供Bucket、Object級別的權限訪問控制

  • 防盜鏈:
  • OSS是按量付費服務
  • OSS基於HTTP Header中的字段Referer的防盜鏈方法
  • 每個Referer白名單使用換行符,支持通配符(*、?)
  • 服務器加密存儲:
  • OSS支持在服務器端對用戶上傳的數據進行加密編碼
  • 數據上傳,對數據進行加密編碼
  • 數據下載,對數據進行解密,下載
  • 支持加密的操作包括:
  • Put Object:簡單上傳
  • Copy Object:複製Object
  • Initiate Multipart Upload:分片上傳
  • 客戶端加密SDK:
  • SDK在本地進行數據加密
  • 阿里雲KMS託管用戶主密鑰,上傳對象時指定KMS用戶的主密鑰ID
  • 使用用戶自主管理密鑰,用戶自主生成並保管加密密鑰
  • AK方式加解密

2.Y.5 對象存儲OSS的API

  • OSS API使用:
  • 使用RESTful接口,推薦使用SDK來調用
  • 通過向OSS client類設定Endpoint,加入請求參數,系統返回結果
  • 請求結構:

訪問地址:EndPoint(http://oss-cn-hangzhou.aliyuncs.com

  • 返回的格式:數據格式只有XML格式

阿里雲API網址:http://api.aliyun.com

2.x 對比分析:OSS vs 傳統自建存儲服務器

對比項 對象存儲OSS 自建服務器存儲
可靠性 服務設計可用性不低於99.9%
規模自動擴展,不影響對外服務
數據設計持久性不低於99.999999999%
數據自動多重冗餘備份
受限於硬件可靠性,易出問題,一旦出現磁盤壞道,容易出現不可逆轉的數據丟失。
人工數據恢復困難、耗時、耗力
安全 提供企業級多層次安全防護
多用戶資源隔離機制,支持異地容災機制。
提供多重鑑權和授權機制及白名單、防盜鏈、主/子賬號功能
需要購買清洗和黑洞設備
需要單獨實現安全機制
成本 多線BGP骨幹網絡(中國移動、聯通、移動教育網等),無帶寬限制,上行流量免費
無需運維人員與託管費用,0成本運維
存儲受硬盤容量限制,需人工擴容
單線或雙線接入速度慢,有帶寬限制,峯值時需人工擴容
需專人運維,成本高
數據處理能力 提供圖片處理、音視頻轉碼、內容加速分發(CDN)、鑑黃服務、歸檔服務等多種數據增值服務,並不斷豐富中 需要額外採購,單獨部署

3 OSS產品一覽

  • [國內] 七牛雲 Kodo OSS

對象存儲產品(Kodo OSS)

  • [國內] 阿里雲 OSS
  • [國內] 華爲雲 OBS

  • [全球] Amazon S3

  • [開源] MiniIO

X 參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章