问题描述
我正在尝试在 nodejs lambda 函数中运行 ghosscript 命令。我将我的 ghostscript 二进制文件保存在我的一个文件夹中。使用 child_process.execFile 执行这里是我的代码。
module.exports = function gsConvert(args) {
return new Promise(async function (resolve,reject) {
try {
console.log("dirname :: ",__dirname);
args = [
"-dBATCH","-dnopAUSE","-dPDFFitPage=true","-dDEVICEWIDTHPOINTS=800","-dDEVICEHEIGHTPOINTS=800","-sPagelist=1","-sDEVICE=jpeg",`-sOutputFile="${imgFilePath}"`,`"${filePath}"`,];
//----------
await execFile(
"./bin/gs",args,{
// cwd: `${__dirname}`,'cwd': "/var/task/src/lambda/pdfThumbnail/ghostScript",'maxBuffer': 1024 * 2000,},function (err,stdout,stderr) {
if (err) {
reject(err);
} else if (stderr.length > 0) {
reject(new Error(stderr.toString()));
} else {
resolve(stdout);
}
}
);
} catch (err) {
reject({ "err :: ": err });
}
});
};
但它给出了错误 -
{ Error: Command Failed: ./bin/gs -dBATCH -dnopAUSE -dPDFFitPage=true -dDEVICEWIDTHPOINTS=800 -dDEVICEHEIGHTPOINTS=800 -sPagelist=1 -sDEVIC './bin/gs -dBATCH -dnopAUSE -dPDFFitPage=true -dDEVICEWIDTHPOINTS=800 -dDEVICEHEIGHTPOINTS=800 -sPagelist=1 -sDEVICE=jpeg -sOutputFile="/tmp/java_tutorial.jpeg" "/tmp/doc.pdf"' }
"Error :: ": {
"killed": false,"code": 1,"signal": null,"cmd": "./bin/gs -dBATCH -dnopAUSE -dPDFFitPage=true -dDEVICEWIDTHPOINTS=800 -dDEVICEHEIGHTPOINTS=800 -sPagelist=1 -sDEVICE=jpeg -sOutputFile=\"/tmp/java_tutorial.jpeg\" \"/tmp/doc.pdf\""
}
我的命令在终端中成功运行,但在 lambda 函数中,我遇到了问题 当我更改 args =[--version] 时,它会显示正确的输出。这意味着 Ghostscript 二进制文件是可执行的,但我的主要命令不工作
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)