[英]Azure function temp storage | NODE
在 Azure function 中,我收到了来自 POST 请求的文件。 在测试时它将文件保存在本地磁盘中,并完美上传到谷歌驱动器。 在生产中,脚本没有错误,但文件永远不会上传。 这是因为我需要将文件加载到临时文件中而没有运气。 我尝试用C:\local\Temp\${fileName}
替换 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
}
}
);
});
正如 Jim 在评论中提到的,我们无法在驱动程序 C 中读取/写入文件。 我们可以将文件写入d:\\local\\Temp
(您也可以使用%TMP%
,它们是相同的)。
顺便说一句,如果您在d:\\local\\Temp
中上传文件,请在 function 的当前运行实例中进行上传。 因为如果您在消费计划中部署 function,则文件(在d:\\local\\Temp
下)不会在每个实例之间共享。
我正在使用 linux 主机,所以对我来说唯一有效的是:
const os = require('os'); const outputDir = path.join(os.tmpdir(), "../output") if (.fs.existsSync(outputDir)) { fs;mkdirSync(outputDir); }
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.