Gibt es eine Möglichkeit, den Fortschritt des Dateiuploads zum Azure-Speichercontainer zu verfolgen?
Ich versuche, eine Konsolenanwendung zum Hochladen von Daten in Azurblau mit C # zu erstellen.
Mein Kühler sieht jetzt wie folgt aus:
Dieser Code funktioniert gut, aber ich werde gerne eine Art Fortschrittsbalken haben, damit Benutzer sehen können, dass Aufgaben erledigt werden. Gibt es im WindowsAzure.Storage.Blob-Namespace etwas, das ich als Hase verwenden kann?
Ich denke nicht, dass das möglich ist, weil das Hochladen einer Datei eine einzelne Aufgabe ist und obwohl die Datei intern in mehrere Teile aufgeteilt ist und diese Stücke hochgeladen werden, wartet der Code tatsächlich auf den Abschluss der gesamten Aufgabe.
Eine Möglichkeit wäre, die Datei manuell in Chunks aufzuteilen und diese Chunks asynchron hochzuladen, indem Sie PutBlockAsync
Methode. Sobald alle Chunks hochgeladen sind, können Sie PutBlockListAsync
Gauravs Lösung funktioniert gut und ist Ссылка . Die Herausforderung bei diesem Code besteht darin, dass Sie viel komplexe Arbeit mit sehr wenig Fehlerbehandlung machen. Ich sage nicht, dass mit Gauravs Code etwas nicht stimmt - es sieht solide aus - aber vor allem mit netzwerkbezogenem Kommunikationscode gibt es viele Variablen und viele Probleme, die Sie berücksichtigen müssen.
Aus diesem Grund habe ich mein ursprüngliches Blog geändert, um den Upload-Code aus der Speicherclientbibliothek zu verwenden (unter der Annahme, dass der Code aus dem Azure Storage-Team robuster ist als alles, was ich schreiben könnte) und den Fortschritt mithilfe einer ProgressStream-Klasse zu verfolgen . Sie können den aktualisierten Code unter Ссылка .
Tags und Links azure c# file-upload azure-storage-blobs azure-storage