我正在尝试运行一个简单的脚本来使用gs包转换PDF-> PNG。该代码在部署到Firebase Cloud Functions中时可以成功运行,但是我使用firebase functions:shell
命令在本地对其进行了测试,它似乎没有错误运行,但是输出文件(.png)丢失了,并且出现以下错误:
错误:提示:没有此类文件或目录,请打开'/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