createBlobFromLocalFile应该是一个非空字符串-天蓝色blob存储空间

问题描述 投票:0回答:1

我正在尝试将文件上传到Azure Blob存储。我正在后端接收它,但是我一直收到错误createBlobFromLocalFile should be a non-empty string,我正在接收文件,正如您在控制台输出中看到的那样,但是我不明白为什么我不能将其发送到Blob存储。已经尝试将第二个参数blob string替换为req.file, req,file.path, req.file.destination + filename,但无法获取将其存储在blob中的文件。感谢您的帮助!

app.js

app.post("/api/fileupload", checkAuth, upload, (req, res, next) => {

  console.log("req.file below");
  console.log(req.file);

  blobService.createBlockBlobFromLocalFile('testcontainer', req.file, "image.png", function (error, result, response) {
    console.log(response);
    if (!error) {
      // file uploaded
    }
  });

});

控制台输出

req.file below
{ fieldname: 'file',
  originalname: 'blob',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  destination: 'public/uploads/',
  filename: '18af517e9a94b2bdab02c7169b8b88a7',
  path: 'public\\uploads\\18af517e9a94b2bdab02c7169b8b88a7',
  size: 39367 }
TypeError: Parameter blob for function _createBlobFromLocalFile should be a non-empty string
node.js azure azure-storage-blobs
1个回答
0
投票

基于documentation,它应该是本地文件的路径(字符串值),而您正在传递对象作为此参数的值。

但是,如果您使用documentation变量,它仍然无法工作,因为它告诉您本地计算机上文件的路径,而不是运行Node.js代码的服务器上的文件的路径。您将需要指定服务器上文件的路径。

[几天前我回答了一个问题,其中file.path包用于解析提取文件内容的请求。尽管答案是使用较新版本的SDK,但您可以使用它来查看如何识别服务器上的本地文件路径。您可能会发现它很有用:formidable

© www.soinside.com 2019 - 2024. All rights reserved.