如何解决在 nodejs lambda 函数中使用 childprocess.execFile 执行 ghostscript 二进制文件
我正在尝试在 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 举报,一经查实,本站将立刻删除。