static async Task MigrateBlobs(BlobLocationInfo from, BlobLocationInfo to) { var fromClient = CloudStorageAccount.Parse(from.ConnectionString).CreateCloudBlobClient(); var toClient = CloudStorageAccount.Parse(to.ConnectionString).CreateCloudBlobClient(); var fromContainer = fromClient.GetContainerReference(from.ContainerName); var toContainer = toClient.GetContainerReference(to.ContainerName); var blobs = await fromContainer.ListBlobsSegmentedAsync(from.VirtualDirectoryPath, true, BlobListingDetails.Metadata, null, new BlobContinuationToken(), new BlobRequestOptions(), new OperationContext()).ConfigureAwait(false); await MoveBlobs(blobs.Results, toContainer, to.VirtualDirectoryPath).ConfigureAwait(false); }
static async Task Main(string[] args) { var from = new BlobLocationInfo { ConnectionString = "AZURE_STORAGE_CONNECTION_STRING", ContainerName = "CONTAINER_NAME", VirtualDirectoryPath = string.Empty }; var to = new BlobLocationInfo { ConnectionString = "AZURE_STORAGE_CONNECTION_STRING", ContainerName = "CONTAINER_NAME", VirtualDirectoryPath = string.Empty }; await Task.WhenAll( MigrateBlobs(from, to) ).ConfigureAwait(false); }