Cómo descargar un archivo de Amazon S3 bucket en node.js sincrónicamente
Tengo que descargar varios archivos del cubo S3 usando node.js. Para eso tengo que escribir unfor loop
& llama as3.getObject(param)
Método para descargar. Después de descargar los archivos, tengo que fusionar sus contenidos.
He escrito así:
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.
Pero comos3.getObject
es una llamada asincrónica en la que se mueve el hilo actual y no se agrega nada alfileContentList
mientras estoy haciendo la fusión
¿Cómo puedo resolver el problema? ¿Alguna idea?
¿Existe algún método sincrónico en aws-sdk para descargar el archivo?