2017-08-22 5 views
0

Mein Client hat eine große Anzahl von Bildern auf S3 gespeichert. Wir müssen diese Bilder als Antwort zurückbekommen. Hier ist der Code, den ich geschrieben habe:NodeJS: Bild als Antwort von AWS S3-Bucket abrufen

var AWS = require('aws-sdk'); 
    AWS.config.update({ 
     accessKeyId: "AccessKey", 
     secretAccessKey: "SecretAccessKey" 
    }); 
    var s3 = new AWS.S3(); 
    s3.getObject({ Bucket: "BucketName", Key: "ImageURL" }, 
     function(error, data) { 
      if (error != null) { 
       var _length = data.Body.length; 
       //Execution freezes here. Don't get any response. 
       res.writeHead(200, { 
        'Content-Type': 'image/jpeg', 
        'Content-Length': _length 
       }); 
       res.end(new Buffer(data.Body, 'binary')); 
       } 
     } 
    ); 

Wie können wir das Bild als Antwort bekommen?

+0

'// Ausführung friert hier ein. Sie haben keinen' else' Block. Und warum genau behandelst du 'if (error! = Null)' als ... Erfolg? Hast du nicht die Logik rückwärts? –

Antwort

0
var AWS = require('aws-sdk'); 
AWS.config.update({ 
    accessKeyId: "AccessKey", 
    secretAccessKey: "SecretAccessKey" 
}); 
var s3 = new AWS.S3(); 
s3.getObject({ Bucket: "BucketName", Key: "ETag.jpeg" }, 
    function(error, data) { 
     if (error != null) { 
      alert("Failed to retrieve an object: " + error); 
     } else { 
      alert("Loaded " + data.ContentLength + " bytes");      
     } 
    } 
); 
+0

das hat auch nicht funktioniert. Ich denke, wir müssen die URL angeben, damit das funktioniert. Gibt es ein Beispiel, das den Code hat, um ein Bild als Antwort zu senden? Ich aktualisiere meine Frage. – user1640256