node.js - 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
}
}
);
});
解决方案
正如 Jim 在评论中提到的,我们无法在驱动程序 C 中读/写文件。我们只能将文件写入d:\\local\\Temp
(您也可以使用%TMP%
,它们是相同的)。
顺便说一句,如果您在 中上传文件d:\\local\\Temp
,请在您的函数的当前运行实例中进行上传。因为如果您在消费计划中部署该功能,则文件(下d:\\local\\Temp
)不会在每个实例之间共享。
推荐阅读
- tcl - 如何使用 X11 System 在 TCL/TK 中呈现 Unicode 字符
- sql - 从 sysmaster 查询验证表是否存在
- java - 使用 Braintree 结帐付款失败
- apache - 同一子域下的 2 个单独的 AEM 实例?
- php - 如何使用数组插入多个数据
- php - 如何在zend框架中将多个图像上传到数据库中
- python - 如何在模板中显示递归数据?
- android - Android FirebaseMessaging Service onMessageReceived 调用了两次
- node.js - 从 NodeJS 中的 AWS SQS 获取所有消息
- php - Wordpress admin-ajax.php 错误 400 错误请求