Bir Sözün içinde Amazon S3'ten binlerce dosya almaya çalışıyorum, ancak liste kesilirse continuationtoken'i nasıl dahil edeceğimi ve hepsini sözün içinde nasıl bir araya getireceğimi anlayamıyorum. JS konusunda acemiyim ve biraz yardıma ihtiyacım olabilir. İşte şu ana kadar sahip olduğum şey:
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;
}
Geri dönmek için kovadaki tüm nesnelerin bir listesini oluşturana kadar çalışmaya devam etmek için işleve ihtiyacım var.