Node.js Проблема с загрузчиком S3

#node.js #amazon-web-services #express #amazon-s3 #amazon-elastic-beanstalk

#node.js #amazon-веб-сервисы #экспресс #amazon-s3 #amazon-elastic-beanstalk

Вопрос:

Попытка загрузки с node.js для Amazon S3, получающего эту ошибку, я потратил весь день, чтобы найти ошибку, не повезло, установлена image magic, приложение работает на elastic beanstalk, ранее установленное на сервере разработки, и код работает нормально, когда я перемещаю приложение в aws, вызывающее эту ошибку, я проверил все зависимости егото же, что и на сервере разработки.

Node.js Журнал регистрации

     Upload data:tmp/c0005d84e41ec82b4f5ae2b1cbf1c3b8
{ [Error: Command failed: /bin/sh -c identify -format "name=
size=%[size]
format=%m
colorspace=%[colorspace]
height=%[height]
width=%[width]
orientation=%[orientation]
" tmp/c0005d84e41ec82b4f5ae2b1cbf1c3b8
/bin/sh: identify: command not found
]
  killed: false,
  code: 127,
  signal: null,
  cmd: '/bin/sh -c identify -format "name=nsize=%[size]nformat=%mncolorspace=%[colorspace]nheight=%[height]nwidth=%[width]norientation=%[orientation]n" tmp/c0005d84e41ec82b4f5ae2b1cbf1c3b8' }
  

Параметры загрузки S3

 var client = new upload('XXX', {

    aws: {
     path: 'images/',
     region: 'us-east-1',
     acl: 'public-read',
     accessKeyId: 'XXX',
     secretAccessKey: 'XXXX'
   },

   cleanup: {
     versions: true,
     original: false
   },

   original: {
     awsImageAcl: 'private'
   },

   versions: [{
     maxWidth: 1040,
     format: 'jpg',
     suffix: '-large',
     quality: 80
   },{
     maxWidth: 780,
     suffix: '-medium',
     format: 'jpg',
     quality: 80
   }]
 });
  

Сценарий загрузки

 app.post('/profile/upload', mupload.single('avatar'), function (req, res, next) {


    var data = req.file;
    console.log("Upload data:"   data.path);

    client.upload(data.path, {}, function(err, versions, meta) {
          console.log(err);
          console.log(meta);
          console.log("versions data:"   versions);
          versions.forEach(function(image) {
                    res.end(image.url);
          });


    });
  

});

Ответ №1:

это ваша проблема: /bin/sh: identify: command not found

программа identify не установлена, вам необходимо установить imagemagick на экземпляр EB. В вашем .ebextensions / packages.config добавьте

 packages:
  yum:
    ImageMagick: []