<appSettings>
<add key="SourceStorageConnectionString" value="connectionString" />
<add key="DestinationStorageConnectionString" value="connectionString" />
<add key="SourceContainer" value="source-container" />
<add key="DestinationContainer" value="destination-container" />
<add key="BlobName" value="AzureBlobInputProduct.txt" />
</appSettings>
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"));
//Get source blob name from app.config
string blobName = CloudConfigurationManager.GetSetting("BlobName");
//Create container into blob if not exists
destinationContainer.CreateIfNotExists();
Console.WriteLine("Started moving blob: " + blobName + " from container " + sourceContainer.Name +" to "+ destinationContainer.Name);
CloudBlockBlob sourceBlob = sourceContainer.GetBlockBlobReference(blobName);
CloudBlockBlob targetBlob = destinationContainer.GetBlockBlobReference(blobName);
//copy blob from source to destination
targetBlob.StartCopy(sourceBlob);
//check if blob exists into destination container
if (targetBlob.Exists())
{
//Delete blob from source container
sourceBlob.Delete(DeleteSnapshotsOption.IncludeSnapshots);
}
Console.WriteLine(blobName + " blob moved has been successful.");
Console.Read();
}
}
}