我试图抓住数以千计的文件从亚马逊S3内的承诺,但我似乎无法找出如何包括的ContinuationToken内如果清单被截断,并聚集在一起内的承诺。 我是个新手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;
}
我需要的功能继续运行直到我已经创建了一个列表中的所有对象的斗返回。