Dans un Node.js projet je cherche à récupérer des données à partir de S3.
Lorsque j'utilise getSignedURL
, tout fonctionne:
aws.getSignedUrl('getObject', params, function(err, url){
console.log(url);
});
Mes paramètres sont les suivants:
var params = {
Bucket: "test-aws-imagery",
Key: "TILES/Level4/A3_B3_C2/A5_B67_C59_Tiles.par"
Si je prends l'URL de la sortie de la console et de le coller dans un navigateur web, il télécharge le fichier dont j'ai besoin.
Cependant, si j'essaie d'utiliser getObject
je reçois toutes sortes de comportement étrange. Je crois que je suis juste en utilisant de façon incorrecte. C'est ce que j'ai essayé:
aws.getObject(params, function(err, data){
console.log(data);
console.log(err);
});
Sorties:
{
AcceptRanges: 'bytes',
LastModified: 'Wed, 06 Apr 2016 20:04:02 GMT',
ContentLength: '1602862',
ETag: '9826l1e5725fbd52l88ge3f5v0c123a4"',
ContentType: 'application/octet-stream',
Metadata: {},
Body: <Buffer 01 00 00 00 ... > }
null
Il semble donc que cela fonctionne correctement. Cependant, quand je mets un point d'arrêt sur l'une des console.log
s, mon IDE (NetBeans) renvoie une erreur et refuse de montrer la valeur de données. Bien que ce pourrait être simplement l'IDE, j'ai décidé d'essayer d'autres façons de les utiliser, getObject
.
aws.getObject(params).on('httpData', function(chunk){
console.log(chunk);
}).on('httpDone', function(data){
console.log(data);
});
Cela ne veut pas afficher quoi que ce soit. Mettant un point d'arrêt dans les spectacles que le code n'atteint jamais une de la console.log
s. J'ai aussi essayé:
aws.getObject(params).on('success', function(data){
console.log(data);
});
Cependant, cela n'affiche rien et placer un point d'arrêt montre que l' console.log
n'est jamais atteint.
Ce que je fais mal?