using Azure.Storage.Blobs; using System; using System.IO; using System.Threading.Tasks; namespace ConsoleApp2 { class Program { // Required .NET Package: Azure.Storage.Blobs version >=12 // API Docs: https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url static async Task Main(string[] args) { string connectionString = Environment.GetEnvironmentVariable("AZURE_CONNECTION_STRING", EnvironmentVariableTarget.Process); var filesToProcess = new[] { "http://deepyeti.ucsd.edu/jianmo/amazon/categoryFilesSmall/Grocery_and_Gourmet_Food.csv", // ~200MB "http://dmery.sitios.ing.uc.cl/images/GDXray/Castings.zip", // ~295MB "http://dmery.sitios.ing.uc.cl/images/GDXray/Baggages.zip" // ~3GB }; Console.WriteLine("Copying Blob from URL (size limited to 250MB (?) )"); BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); string containerName = $"data-{DateTime.UtcNow:yyyyMMddHHmm}"; BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName); await containerClient.CreateIfNotExistsAsync(); foreach (var fileToProcess in filesToProcess) { string fileName = Path.GetFileName(fileToProcess); var blobClient = containerClient.GetBlobClient(fileName); blobClient.StartCopyFromUri(new Uri(fileToProcess)); } Console.WriteLine($"Operation started. Closing application."); } } }