代码之家  ›  专栏  ›  技术社区  ›  Blue

在Google云函数中写入后找不到文件

  •  0
  • Blue  · 技术社区  · 6 年前

    当我写入os.tmpdir时,我可以在查看目录时看到文件,但在随后调用同一个函数时,我什么也看不到。我认为这意味着文件不知何故不再存在(或不太可能),或者我在不同的地方寻找。我知道我应该在使用tmp目录中的文件之后删除它们,但在此之前,我希望能够再次找到这些文件,以确保任何删除方法在稍后阶段都能正常工作。

    下面是我用来编写文件的代码。

    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);
                    });
                })
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Frank van Puffelen    6 年前

    云功能根据需要启动环境以满足应用程序的负载,并在不再需要时关闭它们本地存储是特定于每个容器的,不在容器之间共享。

    这意味着不能保证写入本地存储的任何文件在随后调用云函数时都可用因此,您只能使用本地存储器:

    • 对于单个调用中的临时文件,在这种情况下,当函数退出时,应清除它们。
    • 用于缓存可以重新创建但代价高昂的文件。从数据库中加载的内容。