Kurzer Hintergrund: Ich habe einen Webdienst, der Dateien in Azure Blob Storage speichert. Benutzer des Dienstes können mehrere Dateien gleichzeitig herunterladen. Wenn die gesamte Dateigröße aller heruntergeladenen Dateien relativ klein ist, dann packe ich die Dateien auf meinem Server und gebe diese ZIP-Datei zurück - kein Problem.Sequenziell Dateien von Azure Blob Storage aus einem Browser herunterladen
Szenario: Wenn ein Benutzer beispielsweise 3 Dateien herunterladen möchte, die jeweils 1 GB groß sind, ist es für mich nicht realistisch, diese Dateien auf den Server herunterzuladen, sie zu komprimieren und dann die ZIP-Datei an den Browser zurückzugeben. Für diese Szenarien gebe ich die Azure Blob Storage-URLs an den Browser zurück und lasse den Benutzer die Dateien direkt von Azure Blob Storage herunterladen, um meine Server nicht zu belasten.
Problem: Derzeit empfängt der Browser nur alle diese URLs und lädt sie alle gleichzeitig herunter. Ich brauche eine Möglichkeit, diese Dateien der Reihe nach herunterzuladen. Der Browser erhält also eine Liste von Blobspeicher-URLs und lädt sie einzeln herunter. Ich habe jedoch keine Ahnung, wie ich im Browser erkennen kann, wenn ein Download abgeschlossen ist und damit ein weiterer beginnen kann.
Alle Ratschläge/Vorschläge, wie ich das angehen sollte, sind willkommen.
EDIT: Mein Frontend erhält eine Liste von ID des Download und beginnt
for(var i = 0; i < listOfDownloads.length; i++) {
//Go direct to Azure blob storage for each ID in list of IDs
//This immediately begins a download direct from blob storage
window.location.href = {azure blob storage URL};
//Find way of detecting when download complete so can move on to next
}
Zeigen Sie den Code, wie Sie diese Dateien auf einmal herunterladen, damit wir von diesem Punkt aus beginnen können. –
Es gibt keinen Code zum Herunterladen dieser Dateien. Dies ist eine GET-Anforderung an eine Azure Blob Storage-URL. –
Wie Sie GET-Anfrage gemacht haben, zeigen Sie Code: ist es über jQuery, etwas natives oder anderes. –