Pratap Bhaskar
Pratap Bhaskar

Reputation: 408

Uploading a Blob to Azure storage doesnt work for local development emulator using NodeJs

I am trying to upload a local file to blob storage using NodeJs. The server sends me the following details

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

and following is the code written for uploading the file

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
 }
});

above code works fine if its a real storage information in Azure, but throws "Specified resource not found" error if its on local development storage.

Any help is greatly appreciated. Thanks

Upvotes: 2

Views: 789

Answers (1)

Gary Liu
Gary Liu

Reputation: 13918

To develop with Azure Storage Emulator in Node.js, please make sure you have start the local emulator first (refer to https://azure.microsoft.com/en-us/documentation/articles/storage-use-emulator/ for more), and try to leverage generateDevelopmentStorageCredentials(), which creates a connection string that can be used to create a service which runs on the storage emulator. The emulator must be downloaded separately.

Here is the code snippet:

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)
  }
})

Upvotes: 1

Related Questions