Total Page Preview:   000000004450

How to move all blob one azure storage account container to another storage account container in c#

In this article, we will leared how to move all blob one azure storage account container to another storage account container in c#.


Install WindowsAzure.Storage SDK for use blob storage account:

Install-Package WindowsAzure.Storage -Version 8.7.0
Once installed above SDK then folow below. 
Copy and Paste below code in App.config file and change connection string-
    <add key="SourceStorageConnectionString" value="connectionString" />
    <add key="DestinationStorageConnectionString" value="connectionString" />
    <add key="SourceContainer" value="source-container" />
    <add key="DestinationContainer" value="destination-container" />


C# Code:

using Microsoft.WindowsAzure;

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.IO;
using System.Threading.Tasks;
//move container with blob one storage account to another storage account
namespace BlobCopyOneStorageToAnother
    class Program
        static void Main(string[] args)
            //Get source and destination azure storage account connection string from app.config
            CloudStorageAccount sourceStorageConnectionString = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("SourceStorageConnectionString"));
            CloudStorageAccount destinationStorageConnectionString = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("DestinationStorageConnectionString"));
            CloudBlobClient sourceCloudBlobClient = sourceStorageConnectionString.CreateCloudBlobClient();
            CloudBlobClient targetCloudBlobClient = destinationStorageConnectionString.CreateCloudBlobClient();
            //Get source and destination container name from app.config
            CloudBlobContainer sourceContainer = sourceCloudBlobClient.GetContainerReference(CloudConfigurationManager.GetSetting("SourceContainer"));
            CloudBlobContainer destinationContainer = targetCloudBlobClient.GetContainerReference(CloudConfigurationManager.GetSetting("DestinationContainer"));
            //Create container into blob if not exists
            Console.WriteLine("Started moving ing all blob: " + sourceContainer.Name +"  to "+ destinationContainer.Name);
            // Move each blob 
            foreach (IListBlobItem blob in sourceContainer.ListBlobs(useFlatBlobListing: true))
                //Get blob url 
                Uri thisBlobUri = blob.Uri;
                //Get blob name 
                var blobName = Path.GetFileName(thisBlobUri.ToString());
                Console.WriteLine("moving blob: " + blobName);
                CloudBlockBlob sourceBlob = sourceContainer.GetBlockBlobReference(blobName);
                CloudBlockBlob targetBlob = destinationContainer.GetBlockBlobReference(blobName);
                //copy blob from source to destination
                //check if blob exists into destination container
                if (targetBlob.Exists())
                    //Delete blob from source container
            Console.WriteLine("All blob moved has been successful.");


All Blob Move One Storage Account To Another
Source Container:
All Blob Move One Storage Account To Another
Destination Container:
All Blob Move One Storage Account To Another

Thank You

About Author

Brijesh Kumar

Database Developer

I have more then 6 years Experience in Microsoft Technologies - SQL Server Database, ETL Azure Cloud - Azure SQL Database, CosmosDB, Azure Data Factory, PowerBI, Web Job, Azure Function, Azure Storage, Web Apps, Powershall and Database Migration On-Premise to Azure Cloud.
LinkedIn :


Hi to every one, it's really a nice for me to go to see this site, it includes useful Information.




Facebook User: