Getting Started with Azure Blob Storage
Azure Blob Storage 是 Microsoft 針對雲端推出的物件儲存體解決方案。
比較特別的地方是,Blob Storage
是 區塊儲存(Flag Storage Scheme)
的架構,並非傳統的 階層式架構(Hierarchical Scheme)
,因此在儲存時並不會有「目錄」等等的階層概念。
這種架構非常適合儲存非結構化資料,例如文字或二進位資料。
Blob Storage
總共擁有三種類型的資源,分別是 Storage Account
、Containers
,最後才是 Blob
。
這三者的關係如下圖:
(圖片來源:Storage Blobs Introduction)
Storage Account
在使用 Azure Blob Storage
之前,必須先建立 Storage Account
,並掛進 Resource Group 之下。
Storage Account
也有類型之分,不同的類型會有不同的計價標準和用途,目前最通用的是 Storage V2
細節的收費差異可以參考 Storage Account Overview。
Containers
Containers
會組織一組 Blob
,有點類似檔案系統中的目錄。Storage Account
可以擁有無限數量的 Containers
,而一個 Containers
則可儲存無限數量的 Blob
。
Blob
Blob
為 Azure Blob Storage
中的最小單位,也分為三種狀態:
- 區塊 Blob(
Block blobs
):可儲存文字和二進位資料。區塊 Blob 是由可個別管理的資料區塊所組成。區塊 Blob 最多可儲存大約 4.75 TiB 的資料。較大的區塊 Blob 可供預覽,最多大約 190.7 TiB。 - 附加 Blob(
Append blobs
):和區塊 Blob 相似,由區塊所組成,但已針對附加作業最佳化。附加 Blob 很適合特定案例,比如記錄 VM 產生的資料。 - 分頁 Blob(
Page blobs
):可儲存隨機存取檔案 (大小上限為 8 TiB)。分頁 Blob 存放區可儲存虛擬硬碟 (VHD) 檔案,以作為 Azure 虛擬機器的磁碟。
規格的細節可以參考 Understanding block blobs, append blobs, and page blobs。
Naming
在 Azure Blob Storage
中,各個資源的命名都有一定的標準。
以 Containers
為例,有以下的命名標準:
- 名稱的開頭或結尾必須是字母或數字,而且只能包含字母、數字和虛線 (
-
) 字元。 - 每個虛線 (
-
) 字元前後必須立即接著字母或數字;名稱中不允許連續虛線。 - 名稱的所有字母必須都是小寫。
- 名稱必須介於 3 至 63 個字元長。
詳細規則可以參考 Naming and Referencing Containers, Blobs, and Metadata。
Virtual Hierarchy
通常會使用到 Storage 的情境都會需要階層式的目錄結構,因此 Azure Blob Storage
有一個 Virtual Hierarchy
的功能,根據上傳的 Blob
命名來組成「虛擬目錄」,也可以想像成檔案的 Namespace。
舉例來說,如果我們分別上傳了 a.xml
和 xml/b.xml
,事實上是兩個 Blob
檔案,但在 Azure 的後台可以看到 a.xml
和 xml
目錄,目錄裡才是 b.xml
。
從 Azure 的後台就可以透過 Upload to folder
調整虛擬目錄的名稱了。