Только в AWS Lambda: Ошибка ImageMagick: Команда не выполнена: преобразование: нет делегата декодирования для этого формата изображения - PullRequest
0 голосов
/ 14 декабря 2018

У меня ошибка ImageMagick с одним из изображений, которые мой сайт пытается преобразовать:

{ Error: Command failed: convert: no decode delegate for this image format `/tmp/925bf249f8297827f51f0370642eb560.jpg' @ error/constitute.c/ReadImage/544.
convert: no images defined `/tmp/abdf362d-f7eb-435f-bafe-5a134be0235f.png' @ error/convert.c/ConvertImageCommand/3046.
at ChildProcess.<anonymous> (/var/task/node_modules/imagemagick/imagemagick.js:88:15)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:886:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) timedOut: false, killed: false, code: 1, signal: null }

Странная часть в том, что это происходит только в моей функции AWS Lambda, а не на моем компьютере (Mac).Я читаю о версиях, переустановке ImageMagick и прочем, но я не могу этого сделать в среде Lambda.Есть ли способ обойти это?

1 Ответ

0 голосов
/ 20 декабря 2018

Не доверяйте расширениям файлов вслепую.Изображение предоставлено не в формате JPEG.Вы можете загрузить его в другую систему, где вы можете проверить это, используя file или другое.В данном случае это изображение WebP (WebP - это новый формат изображения, выдвинутый Google).

Одной из возможных причин путаницы является то, что веб-серверы генерируют Mime-тип из расширения файла, поэтомуИзображение WebP возвращается с типом изображения mime / jpeg, и большинство программ (включая ваш браузер) обычно доверяют этому вслепую.

...