1

我正在尝试使用 NodeJs 将本地文件上传到 blob 存储。服务器向我发送以下详细信息

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

以下是为上传文件而编写的代码

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

如果上面的代码在 Azure 中是真实的存储信息,则可以正常工作,但如果它在本地开发存储中,则会引发“找不到指定的资源”错误。

任何帮助是极大的赞赏。谢谢

4

1 回答 1

1

要在 Node.js 中使用 Azure 存储模拟器进行开发,请确保您首先启动了本地模拟器(有关更多信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/storage-use-emulator/ ),并尝试利用generateDevelopmentStorageCredentials(),它创建一个连接字符串,可用于创建在存储模拟器上运行的服务。模拟器必须单独下载。

这是代码片段:

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)
  }
})
于 2016-06-13T03:32:07.030 回答