0

Ich versuche, eine lokale Datei in Blobspeicher mit NodeJs hochzuladen. Der Server sendet mir die folgenden DetailsDas Hochladen eines Blobs in Azure-Speicher funktioniert nicht für den lokalen Entwicklungsemulator unter Verwendung von NodeJs

{hostName: "StorageAccount", containerName:"containerName", "blobName": blobName, sasToken: "sasToken"} 

und nach dem Code zum Hochladen der Datei geschrieben

var azure = require('azure-storage'); 
var blobSvc = azure.createBlobServiceWithSas(result.hostName,result.sasToken); 
blobSvc.createBlockBlobFromLocalFile(result.containerName,result.blobName,'server.json', 
function(error, result, response){ 
    if(!error){ 
    // file uploaded 
} 
}); 

obige Code funktioniert, wenn seine echten Speicherinformationen in Azure in Ordnung, aber „Angegebene Würfen Ressource nicht gefunden "Fehler, wenn es auf lokalen Entwicklungsspeicher ist.

Jede Hilfe wird sehr geschätzt. Dank

+0

Können Sie Ihre SAS Token teilen? Bitte teilen Sie uns auch den Wert mit, den Sie für "result.hostName" festlegen. –

+0

result.hostName ist http://127.0.0.1:10000/devstorageAccount1 wenn seine Entwicklung, sonst seine https: //xxxx..blob.core.windows.net –

Antwort

0

Um mit Azure Storage-Emulator in Node.js zu entwickeln, stellen Sie sicher, dass Sie zuerst den lokalen Emulator starten (siehe https://azure.microsoft.com/en-us/documentation/articles/storage-use-emulator/ für weitere Informationen), und versuchen generateDevelopmentStorageCredentials(), zu nutzen, die eine Verbindungszeichenfolge erstellt, die verwendet werden können, um einen Dienst zu erstellen, der auf dem Speicheremulator ausgeführt wird. Der Emulator muss separat heruntergeladen werden. Hier

ist der Code-Schnipsel:

var azure = require('azure-storage'); 
var fs = require('fs'); 

var devStoreCreds = azure.generateDevelopmentStorageCredentials(); 
var blobsrv = azure.createBlobService(devStoreCreds); 

blobsrv.createContainerIfNotExists('container', { 
    publicAccessLevel: 'blob' 
}, function(error, result, response) { 
    if (!error) { 
    blobsrv.createBlockBlobFromLocalFile('container', <blobname>, <filepath>, function (error, result, response) { 
      if (!error) { 
       console.log("Uploaded" + result); 
      } 
      else { 
       console.log(error); 
      } 
     }); 
    }else{ 
    console.log(error) 
    } 
}) 
+0

Ich hatte den Speicher-Emulator ausgeführt. Die Informationen zu Blob werden von einer anderen Anwendung bereitgestellt, die auf demselben Computer ausgeführt wird. –

+0

Haben Sie das Problem nach dem Ausprobieren meines Code-Snippets? Und könntest du bitte deine'Ergebnis'-Info des Emulators zur Verfügung stellen –