【问题标题】:createBlobFromLocalFile should be a non-empty string - azure blob storagecreateBlobFromLocalFile 应该是一个非空字符串 - 天蓝色 blob 存储
【发布时间】:2020-06-15 01:39:19
【问题描述】:

我正在尝试将文件上传到 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-blob-storage


    【解决方案1】:

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

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

    几天前我回答了一个问题,其中formidable 包用于解析提取文件内容的请求。虽然答案是针对较新版本的 SDK,但您可以使用它来查看如何识别服务器上的本地文件路径。您可能会发现它很有用:How to upload images and files to Azure Blob Node.js。

    【讨论】:

    • 我已更新我的代码以反映您在另一篇文章中的回答。它似乎并没有进入表格内部。我不确定如何将代码与传入的文件结合起来。从控制台输出的外观来看,它似乎没有进入form.parse。我感谢您的帮助!更新代码和控制台输出:pastebin.com/y90xy66A
    • 你能尝试输出“form”变量吗?只是想知道你是否安装并引用了正确的 npm 包。理想情况下,请编辑您的问题并在帖子底部添加更新的代码。
    • 这里是定义后的console.log(form)。 pastebin.com/846632cz
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 2015-09-09
    • 2019-08-11
    • 2015-12-04
    • 2019-02-24
    • 1970-01-01
    • 2022-08-02
    • 2019-08-18
    相关资源
    最近更新 更多