【Azure】快速複製兩個Container

【Azure】快速複製兩個Container

最近有個需求,要將舊網站的Blob檔案,複製到新的站台。

為了快速達成,找了IDE工具(CloudBerry Explorer),數量少一張一張Copy適用。

但,我有八萬多個檔案,等太久了!

 

找一找,找到透過PowerShell解決的方案。

文章已經寫得不錯了,但,礙於英文講一下流程。

 

首先,安裝Azure PowerShell

透過上面的工具我裝了:

Microsoft Azure Command Line Tools

Microsoft Azure PowerShell

 

先看複製Container的指令:

   1: #Define the source storage account and context.
   2: $SourceStorageAccountName = "yoursourcestorageaccount"
   3: $SourceStorageAccountKey = "Storage key for yoursourcestorageaccount"
   4: $SrcContainerName = "yoursrccontainername"
   5: $SourceContext = New-AzureStorageContext -StorageAccountName $SourceStorageAccountName -StorageAccountKey $SourceStorageAccountKey
   6:  
   7: #Define the destination storage account and context.
   8: $DestStorageAccountName = "yourdeststorageaccount"
   9: $DestStorageAccountKey = "Storage key for yourdeststorageaccount"
  10: $DestContainerName = "destcontainername"
  11: $DestContext = New-AzureStorageContext -StorageAccountName $DestStorageAccountName -StorageAccountKey $DestStorageAccountKey
  12:  
  13: #Get a reference to blobs in the source container.
  14: $blobs = Get-AzureStorageBlob -Container $SrcContainerName -Context $SourceContext
  15:  
  16: #Copy blobs from one container to another.
  17: $blobs| Start-AzureStorageBlobCopy -DestContainer $DestContainerName -DestContext $DestContext

 

必須擁有:

1.來源AccountName

2.來源的Key

3.來源的Container名稱

4.目標AccountName

5.目標的Key

6.目標的Container名稱

 

我一開始嘗試透過Windows PowerShell這個工具來下指令。

結果,不停的得到指令不支援的錯誤訊息。

後來,改用Microsoft Azure PowerShell,再次下指令,才順利執行。

若是檔案重覆,一樣會跳出提示是否覆蓋的訊息。

 

8萬多個圖檔約30分鐘複製完畢。(印象中)

又是一次初體驗。。。。