Сбой облачной функции Google после fs.writeFile - PullRequest
0 голосов
/ 06 сентября 2018

У меня странная ошибка. Я использую облачные функции Firebase для обработки некоторых данных. В рамках функции мне нужно (а) записать CSV в папку tmp / на диске, (б) загрузить этот файл в облачное хранилище Google.

Я использую fs.writeFile для записи на диск. Это работает нормально - данные правильно записываются в папку tmp. НО, вся функция падает, если она не разрешается немедленно. Поэтому, если в функции есть следующий шаг (например, ожидание завершения загрузки с облачным хранилищем Google), функция завершается сбоем.

Мне удалось повторить ошибку с помощью следующей простой версии:

async.waterfall([
   function (callback) {
       fs.writeFile("tmp/testfile.txt", "hello world", function(err) {
           callback(null);
       });
   },
   function (callback) {
       setTimeout(function(){
           callback(null)
       }, 10000);
   }
], function(err){console.log("done!"})

Любые мысли о том, что может пойти не так, будут по достоинству оценены!

1 Ответ

0 голосов
/ 06 сентября 2018

Для потомков проблема заключалась в том, что я устанавливал папку tmp как просто «tmp». Оказывается, вам нужно найти временную папку с помощью os.tmpdir (). Как только вы это сделаете, все работает нормально.

...