我必须使用 node.js 从 S3 存储桶下载多个文件。为此,我必须编写一个for loop
& 调用s3.getObject(param)
方法来下载。下载文件后,我必须合并它们的内容。
我是这样写的:
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.
但是作为s3.getObject
异步调用,当前线程继续前进,fileContentList
在我进行合并时没有添加任何内容。
我该如何解决这个问题?任何想法?
他们在 aws-sdk 中是否有任何同步方法来下载文件?