Я пытаюсь вернуть список всех объектов по заданному пути в корзине и перебрать эти объекты.
На каждой итерации я хотел бы вызывать getObject для объекта, сохраняя содержимое в массиве или объединяя его с другими объектами, чтобы я мог вернуть все данные, содержащиеся вместе.
var params = {
"Bucket": bucket,
"Delimiter": '/',
"Prefix": 'estimates/'
};
s3.listObjects(params, function(err, data){
if(err) {
callback(null, failure({status: false, error: err}));
} else {
data.Contents.forEach(function(obj,index){
var obj_params = {
"Bucket": bucket,
"Key": obj.Key
}
s3.getObject(obj_params, function(err,data){
if(err) {
callback(null, failure({status: false, error: err}));
} else {
well_data.push(data.Body.toString('utf-8'));
}
});
})
console.log(well_data);
callback(null, success(well_data));
}
});
Проблема в том, что well_data в конце возвращает пустой массив. Я понимаю, что это связано с асинхронной природой вызова getObject, но я не знаю, какой шаблон лучше всего решить эту проблему.