Я пытаюсь запустить простой скрипт для преобразования PDF -> PNG с использованием пакета gs. Код успешно запускается при развертывании в облачных функциях Firebase, но я проверяю его локально с помощью команды firebase functions:shell
, которая, по-видимому, запускается без ошибок, но выходной файл (.png) отсутствует, и я получаю следующую ошибку:
Ошибка: ENOENT: такого файла или каталога нет, откройте '/var/folders/sr/pjwr5d0s75bgzvx4xgcdcylw0000gp/T/*****/-***********.png'
Путь правильный, но файл .png отсутствует, но файл pdf есть, и команда gs не выдает ошибок. Я даже попытался изменить путь с os.tmpdir()
на конкретный путь на моем рабочем столе (Mac), но все равно не удалось создать файл png.
Тот же код при развертывании в firebase работает нормально.
Вот мой код GS (я пропустил код CF и код вызова):
//============== Ghostscript
//Conver PDF -> PNG
console.log('gs - starting');
gs()
.batch()
.nopause()
.option('-r' + 50 * 2)
.option('-dDownScaleFactor=2')
.executablePath('lambda-ghostscript/bin/./gs')
// .device('png16m')
.device('pngalpha')
.output(outputPath)
.input(pdfPath)
.exec(function (err, stdout, stderr) {
if (!err) {
console.log('gs executed w/o error');
console.log('stdout',stdout);
console.log('stderr',stderr);
console.log('output saved to: ', outputPath);
resolve(outputPath);
} else {
console.log('gs error:', err);
reject();
}
});
})
Понятия не имею, почему он не работает локально, а работает при развертывании. Мой путь ввода правильный и вывод path.join(os.tmpdir(), '****.png')
;
Редактировать Вывод GS в консоли:
> gs executed w/o error
> stdout
> stderr
> output saved to: /var/folders/sr/pjwr5d0s75bgzvx4xgcdcylw0000gp/T/*******/*********.png