Загрузка большого двоичного объекта в хранилище Azure не работает для эмулятора локальной разработки с использованием NodeJs

Я пытаюсь загрузить локальный файл в хранилище BLOB-объектов с помощью NodeJs. Сервер отправляет мне следующие данные

{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, но выдает ошибку «Указанный ресурс не найден», если он находится в локальном хранилище разработки.

Любая помощь приветствуется. Спасибо


person Pratap Bhaskar    schedule 10.06.2016    source источник
comment
Можете ли вы поделиться своим токеном SAS? Также сообщите нам значение, которое вы устанавливаете для result.hostName.   -  person Gaurav Mantri    schedule 10.06.2016
comment
result.hostName — это 127.0.0.1:10000/devstorageAccount1, если это разработка, иначе xxxx..blob.core.windows.net   -  person Pratap Bhaskar    schedule 10.06.2016


Ответы (1)


Для разработки с помощью эмулятора хранилища Azure в Node.js сначала убедитесь, что вы запустили локальный эмулятор (см. 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)
  }
})
person Gary Liu    schedule 13.06.2016
comment
У меня был запущен эмулятор хранилища. Информация о Blob предоставляется другим приложением, работающим на том же компьютере. - person Pratap Bhaskar; 13.06.2016
comment
У вас все еще есть проблема после того, как вы попробовали мой фрагмент кода? И не могли бы вы предоставить свою result информацию об эмуляторе - person Gary Liu; 13.06.2016