ฉันพยายามที่จะจับคนนับพันของแฟ้มจากอเมซอน S3 ภายในสัญญาแต่ฉันไม่สามารถดูเหมือนจะคิดให้ออกว่าจะรวม ContinuationToken ภายในหากรายการเป็น truncated และรวบรวมทั้งหมดมันด้วยกันภายในสัญญา ฉันเป็นสำหรับคอบ JS และต้องการความช่วยเหลือ นี่คือสิ่งที่ฉันต้องดังนั้นห่างไกล:
getFiles()
.then(filterFiles)
.then(mapUrls)
;
function getFiles(token) {
var params = {
Bucket: bucket,
MaxKeys: 5000,
ContinuationToken: token
};
var allKeys = [];
var p = new Promise(function(resolve, reject){
s3.listObjectsV2(params, function(err, data) {
if (err) {
return reject(err);
}
allKeys.push(data.Contents)
if (data.IsTruncated) {
s3.listObjectsV2({Bucket: bucket, MaxKeys: 5000, ContinuationToken: data.NextContinuationToken})
console.log('Getting more images...');
allKeys.push(data.Contents)
}
resolve(data.Contents);
});
});
return p;
}
ฉันต้องการฟังก์ชันจะทำต่อไปหรือไม่ต้องหนีจนกระทั่งฉันสร้างรายการของวัตถุทั้งหมดอยู่ในถังที่จะกลับมา