用于了解特定S3存储桶中可用对象/密钥数量的API?

时间:2017-11-09 07:08:42

标签: amazon-web-services amazon-s3 aws-sdk amazon-cloudwatch amazon-cloudwatch-metrics

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

2 个答案:

答案 0 :(得分:1)

不是真的。我认为你现在有三种选择,具体取决于你的要求:

  1. 迭代每个对象。显而易见的答案,但也许是最不受欢迎的。
  2. 在DynamoDB之类的东西中维护自己的运行状态。您可以在S3事件上使用触发器来更新自己的值或使用CloudWatch指标。
  3. 使用S3 Inventory每天获取一个列表。
  4. 因此,根据紧急程度,一致性要求等,这些至少提供了一些选择。

答案 1 :(得分:0)

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

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

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

像这样的东西

s3.listObjectsV2(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data.Contents.length); 
}