1. 程式人生 > >Azure Blob數據遷移工具

Azure Blob數據遷移工具

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數據遷移工具