GraphicsMagick + ImageMagick + ошибка отклонения: команда не выполнена:

Используемая версия gm — последняя 1.9.0.

версия узла 0.12.0.

gm инициализируется флагом {imageMagick: true}. ImageMagick также обновлен. Сервер, столкнувшийся с этой проблемой, — Ubuntu.

В основном я считаю, что проблема связана с правами пользователя. Приложение работает, когда оно запущено на root пользователе. Однако при запуске под другим пользователем 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, как ему можно предоставить доступ к набору командной строки ImageMagick. Кроме того, safeuser мог выполнять операции с файловой системой, так как папки были привязаны к нему. Так что часть подозрений снимается.

Любая помощь, пожалуйста?


person Calvintwr    schedule 10.05.2015    source источник


Ответы (1)


ошибка, по-видимому, не была связана с разрешениями.

Решено с помощью собственного интерфейса командной строки GraphicsMagick поверх imageMagick:

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

вар гм = требуется ('гм')

Как установить гм на убунту:

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

$ sudo apt-get update

$ sudo apt-get install graphicsmagick
person Calvintwr    schedule 10.05.2015