GraphicsMagick + ImageMagick + rejection Error: Command failed:

GraphicsMagick + ImageMagick + rejection Error: Command failed:

使用的gm版本是最新的1.9.0。

节点版本为 0.12.0.

gm 使用 { imageMagick: true } 标志进行初始化。 ImageMagick 也更新了。遇到这个问题的服务器是 Ubuntu.

原则上,我认为问题是用户权限引起的。该应用程序在 root 用户的 运行 时工作。但是,当运行ning在另一个用户safeuser时,就会出现错误。它正在尝试像这样进行一系列调整大小等操作:

gm(imagePath)
    .resize(size, size)
    .quality(quality)
    .writeAsync(path + suffix).catch(function(err) { // note #writeAsync is promisification
        throw (err); //don't swallow the error
    });

有很多文档试图解决与访问权限有关的错误。但是,在我的 Node 实例在 safeuser 上 运行ning 的这种情况下,关于如何授予它访问 ImageMagick CLI 套件的权限尚不清楚。此外,safeuser 能够执行文件系统操作,因为文件夹已被更改为它。所以那部分怀疑就去掉了。

有什么帮助吗?

错误显然与权限无关。

通过在 imageMagick 上使用 GraphicsMagick 自己的 CLI 解决:

var gm = require('gm').subclass({imageMagick: true}); // remove this subclass to use gm's own CLI

var gm = require('gm')

如何在 ubuntu 上安装 gm:

$ sudo add-apt-repository ppa:dhor/myway

$ sudo apt-get update

$ sudo apt-get install graphicsmagick