0

是否有任何 AWS sdk API 可以提供特定 S3 存储桶中可用的对象/键的总数?不使用 isTruncated() , listObjects() 总迭代。

4

2 回答 2

1

并不真地。我认为您有三个选择,具体取决于您现在的要求:

  1. 迭代每个对象。显而易见的答案,但也许是最不受欢迎的。
  2. 在 DynamoDB 之类的东西中维护您自己的运行状态。您可以在 S3 事件上使用触发器来更新您自己的值或使用 CloudWatch 指标。
  3. 每天使用S3 Inventory获取列表。

因此,根据紧迫性、一致性要求等,这些至少提供了一些选项。

于 2017-11-09T09:39:37.540 回答
0

我知道你说过没有使用 listObjects() 但我们可能知道你为什么不想使用它。

是因为获取所有对象数据所花费的时间还是因为该方法是异步的?

无论如何,亚马逊现在建议使用新的listObjectsV2(params, callback)方法。也许你可以用它来得到它。

像这样的东西

s3.listObjectsV2(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else console.log(data.Contents.length); 
});
于 2017-11-09T15:22:34.337 回答