我正在尝试使用NodeJ将本地文件上传到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中是真实的存储信息,则可以正常工作,但如果它在本地开发存储上,则会抛出“未找到指定的资源”错误。
非常感谢任何帮助。 感谢
答案 0 :(得分: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)
}
})