2017-07-08 5 views
0

Ich bin auf der Suche nach einer Möglichkeit zum Hochladen von Dateien in Azure Blob Storage. Ich fand azure-storage Npm-Paket. Aber ich habe ein Problem mit 'createBlockBlobFromStream' Methode.Meteor und Azure Blob Speicher

Ich weiß nicht, wie Stream von Uint8Array erstellen.

xhr.onload = function (e) { 
        if (this.status == 200) { 

         // Note: .response instead of .responseText 
         const blob = new Blob([this.response]); 
         console.log(audios[i].file); 
         const reader = new FileReader(); 

         reader.onload = function() { 
          const data = new Uint8Array(reader.result); 
          Meteor.call('uploadFilesViaSDK', data); 
         }; 

         reader.readAsArrayBuffer(blob); 
        } 
       }; 

Ich versuche, Dateien von S3 zu Azure Blob zu migrieren. Deshalb downloade ich Dateien von S3, und lese es dann als ArrayBuffer und konvertiere es in Uint8Array. Und jetzt schaue ich mir an, wie ich diese Daten über azure.createBlockBlobFromStream in azurblau übertragen kann. Insbesondere brauche ich ein Beispiel zum Erstellen eines Streams von Uint8Array.

Ich werde für jede Antwort dankbar

+1

antwortete ich eine ähnliche Frage vor ein paar Tagen - https://stackoverflow.com/questions/44952566/how-do-i-transfer-base64- Daten in einen lesbaren Bildstrom-ohne-speichern-locall. Dort habe ich einen Stream von Buffer erstellt. Sehen Sie, ob Ihnen das hilft. –

Antwort

0

Neben einem Ansatz von Gaurav zur Verfügung gestellt, sobald Sie durch die Verwendung streamifier einen Strom von Uint8Array erstellt, Sie createWriteStreamToBlockBlob Funktion zu schreiben, zu einem Block Blob aus einem Stream verwenden können . Damit Sie in der Lage, Strom zu übertragen, indem .pipe() Aufruf:

streamifier.createReadStream(new Buffer(uint8)).pipe(blobSvc.createWriteStreamToBlockBlob('mycontainer', 'test.txt')); 
Verwandte Themen