【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分鐘複製完畢。(印象中)
又是一次初體驗。。。。