Je dois télécharger plusieurs fichiers à partir du compartiment S3 en utilisant node.js. Pour cela, je dois écrire un for loop
& appeler la méthode s3.getObject(param)
pour télécharger. Une fois les fichiers téléchargés, je dois fusionner leur contenu.Comment télécharger un fichier à partir du compartiment Amazon S3 dans node.js de façon synchrone
J'ai écrit comme ceci:
var fileContentList = new ArrayList();
for(i=0; i<fileNameList.length i++){
s3.getObject({ Bucket: "my-bucket", Key: fileNameList.get(i) }, function (error, data) {
if (error != null) {
alert("Failed to retrieve an object: " + error);
} else {
alert("Loaded " + data.ContentLength + " bytes");
fileContentList.add(data.Body.toString());
}
}
);
}
//Do merging with the fileContentList.
Mais comme s3.getObject
est un appel asynchrone le thread courant se déplace sur & rien est ajouté à la fileContentList
pendant que je fais la fusion.
Comment puis-je résoudre le problème? Une idée?
Est-ce leur méthode synchrone dans aws-sdk pour télécharger le fichier?