在超过1000个文件时,使用Node中的s3将Bucket的所有内容推送到数组中

时间:2016-02-23 14:09:03

标签: node.js amazon-web-services amazon-s3

我正在使用node-s3-client并希望将我的存储桶的所有内容保存到数组中。问题是存储桶中有超过1000个文件,这是最大值。我见过一个例子here我只是不确定如何使用Marker和isTruncated。我有以下代码来获取前1000个文件

var s3 = require('s3');
var client = s3.createClient({
   maxAsyncS3: 20,
   s3RetryCount: 3,
   s3RetryDelay: 1000,
   multipartUploadThreshold: 20971520,
   multipartUploadSize: 15728640,
   s3Options: {
      accessKeyId: process.env.AWS_ACCESS_KEY_ID,
      secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
   }
});

var params = {
    Bucket: process.env.AWS_XML_BUCKET
}
client.s3.listObjects(params, function(err, data) {
    if(err)throw err;
    console.log(data.Contents);
});

如果有人知道如何实现类似上面列出的示例,那么列出所有可能很棒的键。正如我在发布问题时所提到的,我已经看到了这个例子并将其链接起来。我只是不确定如何使用Marker并使其正常工作。

1 个答案:

答案 0 :(得分:0)

我想出了一个临时解决方案。我刚刚创建了一个文件夹名称数组,并分别调用了每个文件夹名称。因为没有文件夹有超过1000个文件,所以现在这样做。