So stellen Sie ein Bild aus Azure Blob Storage bereit, als ob es in meiner Web-App gehostet würdeC#

Ein Treffpunkt für C#-Programmierer
Guest
 So stellen Sie ein Bild aus Azure Blob Storage bereit, als ob es in meiner Web-App gehostet würde

Post by Guest »

Ich habe:
  • Eine mit Angular gerenderte Web-App (

    Code: Select all

    myapp.com
    )
  • Eine C#-REST-API, die von der Web-App aufgerufen wird (

    Code: Select all

    myapi.com
    )
  • Ein Azure Blob Storage-Konto mit privaten und öffentlichen Containern (

    Code: Select all

    myblob.com
    )
Ich habe ein Bild in einem privaten Azure-Blob-Container, myblob.com/image.png. Ich möchte dieses Bild so bereitstellen, als käme es direkt aus der Web-App (

Code: Select all

myapp.com/media/image.png
) mit der Absicht, es als src-Attribut eines img-Tags an anderer Stelle in der App zu referenzieren.
Bisher war ich dazu in der Lage um das Bild von meiner REST-API bereitzustellen (

Code: Select all

myapi.com/media/image.png
), indem Sie einen benutzerdefinierten „Medien“-Endpunkt erstellen, der einen Pfad zum Bild annimmt, eine SAS-URL für den Azure-Blob generiert und Anforderungen von myapi.com/media/image.png an den SAS umleitet URL.

Code: Select all

[HttpGet("{path}")]
public IActionResult GetFileAsync(string path, CancellationToken cancellation)
{
string containerName = "mycontainer";
var blobContainerClient = _blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = blobContainerClient.GetBlobClient(path);

var sasUri = blobClient.GenerateSasUri(
Azure.Storage.Sas.BlobSasPermissions.Read,
DateTimeOffset.UtcNow.AddHours(1));
var signedUrl = blobClient.Uri + sasUri.Query;
return Redirect(signedUrl);
}
Dies hat das gewünschte Verhalten, einen permanenten Link zum Bild zu erstellen und die SAS-Token-URL für den Benutzer zu verschleiern, aber idealerweise würde ich gerne myapp.com verwenden anstelle von myapi.com. Sollte ich nach Angular-Routen suchen, um dies zu erreichen, oder gibt es einen einfacheren Weg, dies zu erreichen? Ist diese Art der URL-Verschleierung überhaupt eine gute Praxis?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post