在Azure函数中,我正在接收来自POST请求的文件。在测试时,它将文件保存在本地磁盘中,并将其完美地上传到google驱动器。在生产环境中,脚本没有错误,但文件永远不会上传。这是因为我需要将文件加载到临时文件中,但没有成功。我试着用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
}
}
);
});
发布于 2021-01-28 15:44:15
正如Jim在评论中提到的,我们不能在driver C中读/写文件,我们只能将文件写到d:\\local\\Temp
中(你也可以使用%TMP%
,它们是一样的)。
顺便说一下,如果您在d:\\local\\Temp
中上传文件,请在您函数的当前运行实例中进行上传。因为如果您在消费计划中部署函数,则每个实例之间不会共享文件(在d:\\local\\Temp
下)。
https://stackoverflow.com/questions/65822697
复制相似问题