【发布时间】:2018-07-23 13:33:52
【问题描述】:
我目前正在我的 os.tmpdir 文件夹中的谷歌云函数中写入文件。现在我知道每次函数触发都会略有不同,并且函数调用之间的 tmp 文件夹永远不会相同(不能两次引用同一个 tmp 文件夹)。我的问题是我是否需要在函数完成执行之前删除文件,或者是否自动取消引用所有 tmp 内存。
编辑: 当我写入 os.tmpdir 时,我可以在查看目录时看到该文件,但在随后的调用中我什么也看不到。我认为这意味着该文件不知何故不再存在(不太可能),或者我正在寻找不同的地方。
下面是我编写文件的代码。
var wstream = fs.createWriteStream(os.tmpdir() + '/myOutput.txt');
wstream.write('Hello world!\n');
wstream.write('Another line\n');
wstream.end();
wstream.on('finish', function () {
console.log('file has been written');
fs.readdir(os.tmpdir(), (err, files) => {
console.log(files.length);
files.forEach(file => {
console.log("Hey Again3", file);
});
})
编辑 2:我一直在运行一些测试,并且新系统的出现比这个问题中指出的要频繁得多(我每次都观察到与我在这里被告知的情况几乎永远不会发生)。我还问了另一个问题,并从另一位更符合个人测试的 firebase 员工那里收到了稍微矛盾的建议:Can't Find file after having written to it in Google Cloud Functions
建议保持一致,但我从未观察到在单个函数的多次调用之间具有完全相同的文件系统,如下所示。
【问题讨论】:
-
我的团队也有同样的问题。你解决了吗?
标签: node.js google-cloud-functions