0

我正在使用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')) { }

请有人建议我解决这个问题,

更新:错误信息与 这个问题不同

4

1 回答 1

0

您对该文件有读取权限吗?您可以测试它,例如通过创建文件读取流来读取文件内容。

我用 azure-storage-node@2.8.0 测试了以下代码,效果很好。

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);
      }
    }); 
  }
});
于 2018-03-06T06:50:29.007 回答