2017-06-10 1 views
0

Ich habe Bildprozessor App, für die Verarbeitung von Bild und bekommen es von azure Blob Storage. In diesem Moment gibt mein BLOB-Speicherdienst die absolute URL an das Bild der Blob-Return-Weiterleitung an diese URL zurück. Zum Beispiel:dotent Kern Blob Speicher Caching

[Route("/blob-storage/{imageName}")] 
[HttpGet] 
public async Task<IActionResult> GetImage(string imageName, ImageSize size) 
{ 
    var imageUrl = await this.ImageProcessorFacade.GetImageUrl(imageName, size); 

    return Redirect(imageUrl); 
} 

Jetzt möchte ich dieses zurückgegebene Bild zwischenspeichern. Ja, existiert ResponseCache Attribut, aber es funktioniert nicht mit Redirect und ich, dass es schlechte Weg ist, dieses Problem zu lösen. Für get Bild, rufe ich zum Beispiel folgendes an: http://localhost/blob-storage/test.jpeg?size... Und Antwort wird umgeleitet auf blob.windows.net/... usw.

Gibt es so, wie man es zwischenspeichern? Vielen Dank für Ihre Zeit!

+0

Was möchten Sie im Cache speichern? Das Image selbst oder die "Prozessor" resultierende URL? –

+0

Der Prozessor gibt die Weiterleitung an das Bild zurück, also das endgültige Bild. –

Antwort

0

Ich möchte dieses zurückgegebene Bild zwischenspeichern. Ja, existiert ResponseCache Attribut, aber es funktioniert nicht mit Redirect und ich denke, es ist ein schlechter Weg, um dieses Problem zu lösen. Für Bild erhalten, rufe ich zum Beispiel dieser: http://localhost/blob-storage/test.jpeg?size ... Und Antwort umleiten zu blob.windows.net/... usw.

Sie rufen Redirect() -Methode in Ihrer Controller-Aktion zu einer Umleitung angegebene URL, die HTTP Position Header-Feld wird als Antwort zurückgegeben. Und dann wird der Benutzeragent (z. B. ein Webbrowser), der von einer Antwort mit 3xx-Code eingeladen wird, eine zweite Anfrage an die neue URL stellen, die im Standortfeld angegeben ist, was auf der Seite des Webbrowsers geschieht. verwandte Header zur Antwort.

enter image description here

Wenn Sie Latenz senken möchten und schnellere Lieferung die Bilder, die in Azure Blob Speicher gespeichert sind, könnten Sie versuchen, the CDN zu verwenden.

Verwandte Themen