Ошибка: ENOENT: нет такого файла или каталога, прочитать

Я использую функцию createBlockBlobFromLocalFile() для загрузки файла в azure-storage. Вот код,

var azureStorage = require('azure-storage');
var blobUri = "http://accountname.blob.core.windows.net";
var blobService = azureStorage.createBlobServiceWithSas(blobUri, sasKey).withFilter(new azureStorage.ExponentialRetryPolicyFilter());
blobService.createBlockBlobFromLocalFile('container', 'taskblob', 'task1.txt', function(error, result, response) {
        if (!error) {
            console.log("uploaded");
        } else {
            console.log(error);
        }
      }); 

когда я запускаю приведенный выше код, я получаю сообщение об ошибке, например

events.js:183 бросить; // Необработанное событие "ошибка" ^

Ошибка: ENOENT: нет такого файла или каталога, прочитать

Мой путь к файлу и код находятся в той же папке, что и

D:\path\upload.js

D:\path\task1.txt

Я проверил доступность файла, используя приведенный ниже код, он возвращается как успешный,

var fs = require('fs');
if (fs.existsSync('task1.txt')) { }

Пожалуйста, кто-нибудь предложит мне решение для этого,

ОБНОВЛЕНИЕ. Сообщение об ошибке отличается от этого вопроса.


person skr07    schedule 05.03.2018    source источник
comment
Вы пробовали пройти абсолютный путь?   -  person Arash Motamedi    schedule 05.03.2018
comment
да, я пробовал абсолютный путь, например blobService.createBlockBlobFromLocalFile('container', 'taskblob', 'D:\path\task1.txt', function(error, result, response) { }, но не работал. все та же ошибка   -  person skr07    schedule 05.03.2018
comment
я тоже пробовал var path = require('path'); path.join(__dirname, 'task1.txt')   -  person skr07    schedule 05.03.2018
comment
Возможный дубликат azure createBlockBlobFromLocalFile не показывает такого файла или каталога   -  person Aaron Chen    schedule 06.03.2018


Ответы (1)


У вас есть разрешение на чтение этого файла? Вы можете проверить это, например, создав поток чтения файла для чтения содержимого файла.

Я протестировал следующий код с [email protected], и он работает хорошо.

var blobService = azureStorage.createBlobService(accountName, sasKey).withFilter(new azureStorage.ExponentialRetryPolicyFilter());

blobService.createContainerIfNotExists('mycontainer', function (err, res) {
  if (!err) {
    blobService.createBlockBlobFromLocalFile('mycontainer', 'taskblob', 'task1.txt', function (error, result, response) {
      if (!error) {
          console.log("uploaded");
      } else {
          console.log(error);
      }
    }); 
  }
});
person Xiaoning Liu - MSFT    schedule 06.03.2018