无法列出我的存储桶中的所有根文件夹

时间:2020-08-27 14:15:51

标签: node.js amazon-s3

我有一个存储桶,其中约有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中。

1 个答案:

答案 0 :(得分:2)

SDK最多返回1000个结果。如果对结果进行分页,则需要重新发出带有继续标记的列表调用。请在响应中参见IsTruncatedNextContinuationToken,并在请求中参见ContinuationToken

此外,您应该使用listObjectsV2而不是已弃用的listObjects