首页 > 解决方案 > Azure 函数临时存储 | 节点

问题描述

在 Azure 函数中,我从 POST 请求接收文件。在测试时它将文件保存在本地磁盘中,并完美上传到谷歌驱动器。在生产中,脚本没有错误,但文件永远不会上传。这是因为我需要将文件加载到临时文件中而没有运气。我尝试将 FileName 替换为C:\local\Temp\${fileName}. - 任何帮助将不胜感激。

      const createWrite = new Promise((resolve, reject) => {
        fs.writeFile(fileName, buf, function (err, result) {
          if (err) {
            console.log("error", err);
          } else {
            resolve();
          }
        });
      });
      createWrite.then(() => {
        const drive = google.drive({ version: "v3", auth });
        var fileMetadata = {
          name: `${projectName} -  ${fileName}`,
          parents: [`${target}`]
        };
        const media = {
          mimeType: "[*/*]",
          body: fs.createReadStream(fileName)
        };
        drive.files.create(
          {
            resource: fileMetadata,
            media: media,
            fields: "id"
          },
          (err, file) => {
            if (err) {
              // Handle error
              console.error(err);
            } else {
            //  Do something here

            }
          }
        );
      });

标签: node.jsazureazure-functions

解决方案


正如 Jim 在评论中提到的,我们无法在驱动程序 C 中读/写文件。我们只能将文件写入d:\\local\\Temp(您也可以使用%TMP%,它们是相同的)。

顺便说一句,如果您在 中上传文件d:\\local\\Temp,请在您的函数的当前运行实例中进行上传。因为如果您在消费计划中部署该功能,则文件(下d:\\local\\Temp)不会在每个实例之间共享。


推荐阅读