所以基本上我已经努力了一段时间让 imagemagick 和 graphicsmagick 与我的节点应用程序一起正常运行,到目前为止我遵循了安装源http://www.imagemagick.org/script/install-source.php#unix。
我的服务器上的详细信息包括
-nodejs-mongodb-mongoose-imagemagick-graphicsmagick-express
看起来安装进行得很顺利,但是当我通过带有 gm 的节点运行代码时(https://npmjs.org/package/gm)我没有收到任何错误,但文件没有被写入,我将发布图像发布功能的示例代码。
var gm = require('./gm');
var newRoute = '/some/user/url/';
var files = req.files;
gm(files.file.path).resize(1126).compress('JPEG').quality(quality)
.write(newRoute,function(err){
//do some stuff to save changes on db
});
现在,这在我的本地设备上运行良好,但在服务器上却无法移动,有人知道发生了什么吗?该应用程序创建文件夹,文件夹模式应该是 0777,但是当我使用 ssh 登录时,似乎它们可能是 0755,尽管我不确定这是否与权限有关,因为我的 mp3 上传工作正常。当 imagemagick 和 graphicsmagick 发挥作用时,就会发生这种情况。有什么想法吗?
答案1
我偶然发现了这个问题,因为我遇到了同样的问题。这是我修复它的方法:
运行一个简单的 GM 命令来找出问题:
gm convert -size 120x120 randomimage.jpg -resize 120x120 thumbnail.jpg
我的问题是 GM 未配置为支持 JPG。我刚刚从 usr/local 中删除了所有 GM 文件并运行:
sudo yum install GraphicsMagick GraphicsMagick-devel
此后,一切都按预期进行。