[Azure] C# + Azure.Storage.Blobs v12 - 建立快照,從快照還原,設定讀取 Metadata

2020-12-30

這篇主是要是建立快照,然後取得快照的副本們,之後透過快照去還原,網路上面這資料就少了點,所以在寫測試範例的時候花了一點時間去理解,簡單的說,這可以對某一檔案進行快照,請注意,建立快照時建議加入 meta 資料,這樣你可以根據 meta 資料裡面的值來確保是否還原該資料,你可以放入日期,這樣你就可以快速的將某資料還原到該時間點,當然這也只是我的作法,你可用其他方法來做到..


前置步驟,首先你得安裝新版的 Azure.Storage.Blobs ( https://www.nuget.org/packages/Azure.Storage.Blobs ) 12.7.0 ,不要裝到舊版的,這邊我撰寫案例是用 .net core 3.1;在 Azure Portal  開一個 儲存體帳戶,並且在左側的存取金鑰中拿到 Connection String.




1. 建立快照,並且設定 meta -  先講解案例 我在 test1  這容器中有一個檔案 sample.txt ,在建立快照的時候,我會寫入 metadata ,Key:TAG , Value: SNAPSHOT_1~SNAPSHOT_10 ,因為我會建立10個快照 所以是 SNAPSHOT_1~SNAPSHOT_10


你也可以透過 Microsoft Azure Storage Explorer 檢視你的快照們




2.透過快照還原,這裡面我會列出,是不是快照,而且將 TAG 印出來,如果是空白就是現在的檔案,這裡面比較 tricky 的地方,就是在還原的時候 必須要帶入 ?snapshot=[snapshot_value]




Result :

sample.txt,SNAPSHOT_1,2020-12-30T02:16:00.4653143Z
sample.txt,SNAPSHOT_2,2020-12-30T02:16:00.5443695Z
sample.txt,SNAPSHOT_3,2020-12-30T02:16:00.6024113Z
sample.txt,SNAPSHOT_4,2020-12-30T02:16:00.6684580Z
sample.txt,SNAPSHOT_5,2020-12-30T02:16:00.7234966Z
sample.txt,SNAPSHOT_6,2020-12-30T02:16:00.7795366Z
sample.txt,SNAPSHOT_7,2020-12-30T02:16:00.8365766Z
sample.txt,SNAPSHOT_8,2020-12-30T02:16:00.8936162Z
sample.txt,SNAPSHOT_9,2020-12-30T02:16:00.9486558Z
sample.txt,SNAPSHOT_10,2020-12-30T02:16:01.0197061Z
sample.txt,SNAPSHOT_4,


大概先寫到這,我是覺得可以做一些特殊用途,方便好用。

搞懂後邏輯也簡單。


refernce:

https://stackoverflow.com/questions/65332174/restore-an-azure-blob-snapshot-using-c-sharp-library


當麻許的超技八 2014 | Donma Hsu Design.