0

我正在使用 AWS Lambda 中的 PDF 到图像转换项目,但遇到了一些问题,因为 AWS lambda 没有像ImageMagick环境中那样的相关二进制文件,然后我按照一些链接和 StackOverflow 问题并将相关二进制文件作为一个层,对于这项工作,我不得不使用已Ghostscript编译的二进制文件。

层 zip 包含这样的文件

GhostScript.zip > bin > gs

我有一个包装库调用pdf2png,它将执行一个进行转换的子进程,这个子进程使用的命令是上面提到的实用程序gs,但我的问题是我提到的实用程序的路径是错误的,它会抛出一个错误说,

错误:spawn /opt/bin/bin/gs ENOENT

所以我想知道的是 lambda 层文件将如何复制到/opt/bin/目录中?我应该如何替换路径?

对应的代码,

gs()
    .batch()
    .nopause()
    .option('-r' + options.density)
  // .option('-dDownScaleFactor=2')
    .option('-dFirstPage=' + page)
    .option('-dLastPage=' + page)


    .executablePath('/opt/bin/bin/gs')


    .device('png16m')
    .output(output)
    .input(filepath)
    .exec(function (err, stdout, stderr) {
4

1 回答 1

0

在我的情况下,可执行路径必须是这样的

.executablePath('/opt/bin/gs')

它已经bin将层内文件夹中的/opt/bin/文件直接提取到文件夹中。

于 2019-09-20T04:34:12.180 回答