2016-07-29 35 views
0

Ich habe meine Dateien in der Azure gespeichert. Ich möchte die Datei auf der Client-Seite herunterladen oder anzeigen. Wie folgt aus:Download oder Datei von Azure Blob in Aurelia UI anzeigen

Azure -> Api -> Client UI (Aurelia)

Ich habe viele C# Beispiele gesehen, aber ich bin nicht sicher, wie die Datei auf dem UI-Seite zu bekommen. Kann mir bitte jemand helfen!

Danke!

Edit:

Api-Code:

public string getUtf8Text() 
{ 
    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

    var containerName = "myContainer"; 
    var blobName = "myBlobName.pdf";     
    CloudBlobContainer container = blobClient.GetContainerReference(containerName); 
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName); 

    string text; 
    using (var memoryStream = new MemoryStream()) 
    { 
     await blockBlob.DownloadToStreamAsync(memoryStream); 
     text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray()); 
     return text; 
    } 
} 

Der Versuch, eine Datei herunterzuladen, aus dem UTF-8-Byte-String. Der clientseitige Code lautet:

es funktioniert manchmal für pdf, rest der Zeiten seine gerade leeren Seiten. Es bleibt für immer mp4 hängen. Irgendeine Idee was ist hier los?

Antwort

0

Jedes Blob hat eine eindeutige URL-Adresse. Sie können damit den Inhalt des Blobs über einen Client anzeigen, der eine URL verarbeiten kann.

Die Blob-URL zu ähneln:

https://myaccount.blob.core.windows.net/mycontainer/myblob 

Siehe Naming and Referencing Containers, Blobs, and Metadata für weitere Informationen.

Die größere Herausforderung besteht darin, wie Sie den Zugriff auf den Blob für Ihre Benutzer authentifizieren. Sie haben ein paar Optionen:

  • Sie können Blobs im Container public und damit für anonymen Zugriff ohne Authentifizierung verfügbar machen. Dies bedeutet, dass alle Blobs in diesem Container öffentlich sind. Siehe Manage anonymous read access to containers and blobs.
  • Sie können eine gemeinsame Zugriffssignatur verwenden, um den Zugriff auf Blobs im Container mit den von Ihnen angegebenen Berechtigungen und über das von Ihnen angegebene Zeitintervall zu delegieren. Dies bietet Ihnen mehr Kontrolle als anonymer Zugriff, erfordert aber auch mehr Designaufwand. Siehe Shared Access Signatures, Part 1: Understanding the SAS model.
  • Beachten Sie, dass jeder, der Ihren Kontoschlüssel besitzt, sich authentifizieren und auf Blobs in Ihrem Konto zugreifen kann. Sie sollten Ihren Kontoschlüssel jedoch nicht mit anderen teilen. Als Kontoinhaber können Sie jedoch auf Ihre Blobs von Ihrer Anwendung aus zugreifen, indem Sie die Authentifizierung mit dem Kontoschlüssel verwenden (auch bekannt als Authentifizierung mit gemeinsamem Schlüssel).

    +0

    Ich dachte eher wie zurück aus der API, und dann mit diesem Stream in der Benutzeroberfläche, um in das Dokument zu konvertieren. Ist das nicht möglich? – genericuser

    +0

    Ja, Sie können den Stream mithilfe einer Methode wie https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudblockblob.downloadtostreasync.aspx abrufen. Ich kann dir jedoch nicht sagen, wie man den Strom in Aurelia umwandelt; Ich kenne diesen Rahmen nicht. –

    +0

    Danke ,, Ich habe das .. Bearbeiten der Frage. – genericuser