Преобразование ghostscript не создает выходной файл при запуске в локальной среде - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь запустить простой скрипт для преобразования 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
...