2017-12-04 1 views
0

aws-sdk 및 exif 라이브러리를 사용하여 s3 버킷의 이미지에서 이미지 세부 정보를 가져옵니다.awif s3의 이미지를 exif를 사용하여 나열하고 node.js에서 약속합니다.

나는 node.js에서 aws s3 이미지의 버킷에 대한 exif 이미지 세부 정보를 얻는데 사용했습니다. aws-sdk 및 exif 라이브러리를 사용하여 aws bucket의 모든 데이터를 가져 왔지만 그 코드의 결과를 얻지 못했습니다.
은 내가 다음 코드를 사용하고 있습니다 :

app.get('/getContents', function(req,res){ 
    var params = {Bucket: req.query.Bucket}; 

    return new Promise(function(resolve, reject) { 
     s3.listObjects(params, function(err, data) { 
      if (err) { 
       var error = {}; 
       error['isError'] = true, 
       error['status'] = 400, 
       error['message'] = "Data Not Found", 
       error['data'] = err 
       resolve(error); 
      } 
      else { 
       var result1 = []; 
       var result = data.Contents; 
       result.forEach(function(final){ 
        var urlParams = {Bucket: req.query.Bucket, Key: final.Key}; 
        s3.getSignedUrl('getObject', urlParams, function(err, url){ 
         request.get(url, function (err, result, body) { 
          var path = result.request.uri.href; 
          new ExifImage(body, function (error, exifData) { 
           if (error) { 
            result1.push(error.message); 
           } 
           else { 
            result1.push(exifData); 
            res.send(result1); 
           } 
          }); 
         }); 
        }); 
       });  
       //res.send(result1); 
      } 
     }); 
    }); 
}); 

하지만 응답이 브라우저에서 null입니다. 이 코드에 대한 자세한 것을 알 수있는 방법 : 오류가 발생할 수있는 코드에서 포인트를 많이 거기에

+0

을위한 솔루션입니다 .... GitHub의 문제에서 그 해결책을 발견, 응답은 그냥 삭제됩니다. 오류를 처리 할 때 브라우저와 통신하려면'res'를 사용해야합니다. 마지막에'res.send (result1)'줄의 주석 처리를 제거하면 어떻게됩니까? – Will

+0

끝 응답 근처에 res.send (result1) 행의 주석을 제거하면 브라우저에서 null이됩니다. –

답변

관련 문제