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
使用的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