Como baixar um arquivo do bucket do Amazon S3 no node.js de forma síncrona

Eu tenho que baixar vários arquivos do bucket do S3 usando o node.js. Para isso eu tenho que escrever umfor loop & Ligar paras3.getObject(param) método para baixar. Após o download dos arquivos, tenho que mesclar o conteúdo deles.

Eu escrevi assim:

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.

Mas comos3.getObject é uma chamada assíncrona, o encadeamento atual se move e nada é adicionado aofileContentList enquanto estou fazendo a fusão.

Como posso resolver o problema? Qualquer ideia?
Existe algum método síncrono no aws-sdk para baixar o arquivo?

questionAnswers(4)

yourAnswerToTheQuestion