Azure Blob數據遷移工具
阿新 • • 發佈:2017-09-04
net blog iss 壓縮 完全 文件 storage 手工 兩個
數據遷移備份,更多的應用場景見https://docs.azure.cn/zh-cn/storage/common/storage-moving-data?toc=%2fstorage%2fblobs%2ftoc.json
本文檔是針對近期數據冷熱備份實際工作的一個小結。實際使用過Azcopy和AzureClient這兩種方式。據與Microsoft的交流,目前的工具都沒有提供內置壓縮算法(Azcopy正在開發中)。
1、Azcopy
AzCopy 是一個 Windows 命令行實用程序,用於將數據高性能復制到 Azure 存儲(或從中進行復制)。 還可在存儲帳戶內或在存儲帳戶間復制數據。
具體的命令請參考https://docs.azure.cn/zh-cn/storage/common/storage-use-azcopy
本文要說的一個點:關於權限。
通過Azcopy移動數據後,目標數據的權限跟源數據的權限完全一致(Linux目錄和文件的權限,包括owner/group/permissions)。如果前後兩個環境的owner/group不一致,則復制後的數據可能存在權限問題。
2、WindowsAzure.Storage Client
參考:
https://docs.azure.cn/zh-cn/storage/files/storage-dotnet-how-to-use-files?toc=%2fstorage%2fblobs%2ftoc.json
該方法同樣要說的一個點,也是權限問題。
新new出來的blob實例,是不帶權限的,需要手工賦值。
CloudBlockBlob hotBlockBlob = this.hotBlobContainer.GetBlockBlobReference(hotBlockName); this.SetProperties(hotBlockBlob.Properties, blob.Properties); if (blobFloderNames.Contains(blob.Name)) { hotBlockBlob.Metadata.Add("hdi_isfolder", "true"); hotBlockBlob.Metadata.Add("hdi_permission", "{\"owner\":\""+ hotPermission_Owner + "\",\"group\":\""+ hotPermission_Group + "\",\"permissions\":\"rwxr-xr-x\"}"); }else hotBlockBlob.Metadata.Add("hdi_permission", "{\"owner\":\"" + hotPermission_Owner + "\",\"group\":\"" + hotPermission_Group + "\",\"permissions\":\"rw-r--r--\"}");
3、Microsoft.Azure.Storage.DataMovement
參考:https://www.nuget.org/packages/Microsoft.Azure.Storage.DataMovement
Azure Blob數據遷移工具