2017-01-27 6 views
0

Я пытаюсь отправить изображения, хранящиеся на хранилище Amazon S3, в службу визуального распознавания IBM Watson.Отправить изображение с AWS S3 в IBM Watson Visual Recognition

Ошибка я получаю Error: Invalid JSON content received. Unable to parse.

Следующий код работает на сервере Express.

function (imgResult) { 
      var imgName = imgResult[0][0].imghash; 
      var params = { 
      images_file: s3.getObject(
       { 
       Bucket: "Bucket Address", 
       Key: `upload/${imgName}` 
       } 
      ).createReadStream() 
      }; 
      visual_recognition.classify(params, function (err, res) { 
      if (err) { 
       console.log(err); 
      } else { 
       res.images[0].classifiers[0].classes.forEach(function (tagClass) { 

       db.raw(`INSERT INTO smartfolio.tags VALUES (null, ${imgid.idimages}, '${tagClass.class}')`) 
        .then(function (results) { 
        }) 
        .catch(function (err) { 
        console.log(err) 
        }) 
       }); 
      } 
      }); 
     } 

В приведенном выше коде imgResult является ответом запроса базы данных, содержащим имя изображения из базы данных. Я знаю, что проблема кроется в моей переменной params, но я как бы теряюсь в том, как отправить изображение с S3 на Watson.

Ошибка:

{ Error: Invalid JSON content received. Unable to parse. 
    at Request._callback (C:\Users\pheon\Desktop\Smartfolio-1\node_modules\watson-developer-cloud\lib\requestwrapper.js:74:15) 
    at Request.self.callback (C:\Users\pheon\Desktop\Smartfolio-1\node_modules\request\request.js:186:22) 
    at emitTwo (events.js:106:13) 
    at Request.emit (events.js:191:7) 
    at Request.<anonymous> (C:\Users\pheon\Desktop\Smartfolio-1\node_modules\request\request.js:1081:10) 
    at emitOne (events.js:96:13) 
    at Request.emit (events.js:188:7) 
    at IncomingMessage.<anonymous> (C:\Users\pheon\Desktop\Smartfolio-1\node_modules\request\request.js:1001:12) 
    at IncomingMessage.g (events.js:292:16) 

Любая помощь будет принята с благодарностью. Благодаря

+0

Где находится JSON, который считается недействительным? По-видимому очевидным первым шагом является изучение этого. –

+0

см. Выше –

+0

Где находится JSON? –

ответ

0

Ваш вопрос, вероятно, связано с недавним вопросом в Python SDK, который имел такое же сообщение об ошибке: https://github.com/watson-developer-cloud/python-sdk/pull/241

Solutions:

  1. Мультисекционный-закодированный файл content_type должна быть application/zip при отправке на VR
  2. Заменен путь к окну, который вызывает ошибки разбора json.

кажется, что та же самая проблема все еще существует в Узле SDK. Глядя на линии 289 тип контента также устанавливается в приложения/JSON

https://github.com/watson-developer-cloud/node-sdk/blob/master/visual-recognition/v3.js

Может быть, вы реализуете тест на почтовый файл в SDK и изменить станд контента для приложения/почтовый индекс или откройте выпуске в реестре узлов SDK.