tech·nic·al·ly agile

Move an Azure storage blob to another store

Learn how to efficiently move Azure storage blobs between accounts using PowerShell. Simplify your VHD management with this step-by-step guide!

Published on
2 minute read
Image
https://nkdagility.com/resources/b5bHXT2rLoN

Move an Azure storage blob to another store took a little bit longer than I thought that it would. All I wanted to do was move a VHD from one storage account to another. However this is a little more complicated than it seems on the surface.

I am working on teaching the Managing Projects with Microsoft Visual Studio Team Foundation Server 2013  course in Cheltenham this week and have been creating training virtual machines in Azure  . My template is 80GB and it is quite an arduous task to upload it. I now want to move it to a new, less temporary, home.

Move an Azure storage blob to another store

I want to move my training VM from the “trainingeu” storage account to the “almtrainingvm” one. This is really just a refactor now that I have everything working and have thought about a new home. The copy process however is a little bit convoluted, especially as both containers are marked as private.

What I really want to be able to do is just call “Copy-AzureStorageBlob -source https://trainingeu.blob.core.windows.net/vhds/bkvm-2013-3.vhd  -destination https://almtrainingvm.blob.core.windows.net/vhds/bkvm-2013-3.vhd  ” and be done with it. But alas… this is not to be as we need to authenticate to both storage accounts separately even though we are authenticated against the main account.

So… we need a little more PowerShell than I wanted:

Select-AzureSubscription "Pay-As-You-Go"

### Source VHD

$sourceUri = "https://trainingeu.blob.core.windows.net/vhds/bkvm-2013-3.vhd"

$sourceStorageAccount = "trainingeu"

$sourceStorageKey = "bla"

$sourceContext = New-AzureStorageContext –StorageAccountName $srcStorageAccount `

-StorageAccountKey $srcStorageKey

### Target VHD

$targetName = "bkvm-2013-3.vhd"

$targetStorageAccount = "almtrainingvm"

$targetStorageKey = "bla"

$targetContainerName = "vhds"

$targetContext = New-AzureStorageContext –StorageAccountName $targetStorageAccount `

-StorageAccountKey $targetStorageKey

$blob1 = Start-AzureStorageBlobCopy -srcUri $sourceUri -SrcContext $sourceContext -DestContainer $targetContainerName -DestBlob $targetName -DestContext $targetContext

Move an Azure storage blob to another store

Why we can’t do this with URL’s and an authenticated account I do not know… but this is what we got and we have to roll with it.

Move an Azure storage blob to another store

Now that I have my VHD over here I can change my default store and create my Virtual Machines from this VHD instead of the other one. Not the easiest task, but now I have some lovely PowerShell I should be able to move VHD’s between Azure Storage Accounts any time I like.

Practical Techniques and Tooling Install and Configuration

Related blog posts

Related videos

Connect with Martin Hinshelwood

If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.

Our Happy Clients​

We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.​

Microsoft Logo
DFDS Logo
SuperControl Logo
Philips Logo
Slaughter and May Logo
ProgramUtvikling Logo
Boxit Document Solutions Logo
Bistech Logo
Qualco Logo
Lean SA Logo

CR2

Capita Secure Information Solutions Ltd Logo
Akaditi Logo
Lockheed Martin Logo
Alignment Healthcare Logo
MacDonald Humfrey (Automation) Ltd. Logo
Healthgrades Logo
Genus Breeding Ltd Logo
Washington Department of Transport Logo
New Hampshire Supreme Court Logo
Washington Department of Enterprise Services Logo
Department of Work and Pensions (UK) Logo
Ghana Police Service Logo
Royal Air Force Logo
Deliotte Logo
New Signature Logo
Lean SA Logo
Graham & Brown Logo
Boxit Document Solutions Logo
Qualco Logo