using Azure.Storage.Blobs; // Lokales Hilfsprogramm für Azurite (UseDevelopmentStorage=true): // lädt einen Import hoch; result liest dessen JSON-Prüfbericht. if (args.Length == 2 && args[0] == "result") { // args[1] ist der beim Upload ausgegebene Blobname einschließlich der ursprünglichen Dateiendung. var resultBlob = new BlobClient( "UseDevelopmentStorage=true", "results", $"{args[1]}.json"); // Die Function verarbeitet Uploads asynchron; der Bericht kann daher noch fehlen. if (!(await resultBlob.ExistsAsync()).Value) { Console.Error.WriteLine( "Bericht noch nicht vorhanden. Prüfe das Function-Log und den Blobnamen."); Environment.ExitCode = 1; return; } var download = await resultBlob.DownloadContentAsync(); Console.WriteLine(download.Value.Content.ToString()); return; } if (args.Length != 1 || !File.Exists(args[0])) { Console.Error.WriteLine("Bitte eine vorhandene Datei angeben."); Environment.ExitCode = 1; return; } var container = new BlobContainerClient( "UseDevelopmentStorage=true", "imports"); // Beide Container werden auch bei einer frisch gestarteten lokalen Storage-Umgebung angelegt. await container.CreateIfNotExistsAsync(); var resultsContainer = new BlobContainerClient( "UseDevelopmentStorage=true", "results"); await resultsContainer.CreateIfNotExistsAsync(); // Die zufällige Kennung verhindert Namenskollisionen bei wiederholtem Upload derselben Datei. var blobName = $"{Guid.NewGuid():N}-{Path.GetFileName(args[0])}"; var blob = container.GetBlobClient(blobName); await blob.UploadAsync(args[0]); Console.WriteLine($"Hochgeladen: imports/{blobName}");