我有一个存储桶,其中约有2500个文件夹。每个文件夹都有一些文件。 看起来像:
test1/xxxxxx.jpg
test1/yyyy.jpg
test1/.....
..
..
test1/zzzz.jpg
test2/sdfdsf.jpg
....
test2500/dsfds.jpg
我想列出所有文件夹(我希望得到一个类似数组的文件夹:[test1, test2, ..., ..., test2500]
。
这是我的代码:
const s3 = require('s3');
const client = s3.createClient({
s3Options: {
accessKeyId: 'myKEY',
secretAccessKey: 'myKEY',
region: 'myREGION'
}
});
const directoriesEmitter = client.listObjects({
s3Params: {
Bucket: 'BUCKET',
Delimiter: '/',
Prefix: '',
},
recursive: false
});
let s3imagesDirNames;
directoriesEmitter.on('data', (data) => {
s3imagesDirNames = data;
});
directoriesEmitter.on('end', () => {
console.log(s3imagesDirNames);
});
打印时,我只会得到269个文件夹(最大为100 tho)。
结果在CommonPrefixes
中。
答案 0 :(得分:2)
SDK最多返回1000个结果。如果对结果进行分页,则需要重新发出带有继续标记的列表调用。请在响应中参见IsTruncated
和NextContinuationToken
,并在请求中参见ContinuationToken
。
此外,您应该使用listObjectsV2
而不是已弃用的listObjects
。