Hochgeladene Medien Hochladen in Azure Blob Storage über WebApi

9

Mit meiner Web-App können Benutzer derzeit Medien einzeln nacheinander hochladen:

%Vor%

Das Medium wird dann an einen WebApi-Controller gesendet:

%Vor%

Was dann etwas wie folgt macht:

%Vor%

Dies funktioniert hervorragend für einzelne Uploads, aber wie kann ich das ändern, um gebündelte Uploads von multiplen Dateien durch einen einzigen Streaming-Vorgang zu unterstützen, der ein Array von hochgeladenen Dateinamen zurückgibt? Dokumentation / Beispiele dazu scheinen spärlich.

%Vor%     
SB2055 28.07.2017, 15:31
quelle

3 Antworten

2

Angenommen, Ihr AzureStorageMultipartFormDataStreamProvider ist der gleichen Klasse ähnlich, die auf dieser Blog , der bereits mehrere Dateien verarbeitet, wenn die Anfrage mehrere Dateien enthält.

Sie müssen also nur Ihre UploadFile ändern, um eine IEnumerable<string> zurückzugeben und Ihren Controller so zu ändern, dass mediaPath als solcher angezeigt wird.

Ihr MediaService hätte also:

%Vor%

Und Ihr Controller hätte:

%Vor%     
Frank Fajardo 31.07.2017, 02:53
quelle
1

Da Sie die zugehörigen Codes nicht mit der AzureStorageMultipartFormDataStreamProvider-Klasse veröffentlichen.

Also erstelle ich einen benutzerdefinierten AzureStorageMultipartFormDataStreamProvider, der vom MultipartFileStreamProvider erbt, um den Web-API-Upload stapelweiser Uploads mehrerer Dateien zu ermöglichen.

Im AzureStorageMultipartFormDataStreamProvider könnten wir die ExecutePostProcessingAsync-Methode überschreiben.

Bei dieser Methode könnten wir die Daten der Upload-Datei erhalten, dann könnten wir diese Daten in den azurblauen Speicher hochladen.

Weitere Details finden Sie unter den folgenden Codes. Der gesamte Controller.

%Vor%

Das Ergebnis wie folgt:

    
Brando Zhang 31.07.2017 03:26
quelle
1

Ich überprüfte das Hochladen der Medien direkt in den Blobspeicher, nachdem Sie in einer Anforderung das SAS-Token für alle Ihre Dateien von der Web-API erhalten haben. Laden Sie die Dateien mit einem Versprechen und http get von Ihrem Client hoch, der den Upload parallelisiert. Welches ist dein richtiger Entwurf und Ansatz. Dies erhöht auch die Upload-Geschwindigkeit und reduziert die Latenz.

    
Karthikeyan VK 05.08.2017 14:06
quelle