是否可以使用python从lambda函数获取s3桶中特定文件夹中的文件(对象)数量。
发布于 2022-09-07 21:17:13
亚马逊S3存储透镜“提供了整个亚马逊S3存储的对象存储使用和活动的单一视图,它包括钻取选项,以在组织、帐户、区域、桶甚至前缀级别生成洞察力。然而,在前缀级别上获得度量的能力需要高级度量,而高级度量是按$0.20 per million objects monitored per month
定价的。有一个允许访问存储透镜的boto3库,但这似乎是关于配置,而不是检索实际的度量。(我没有使用它,所以我不知道其中涉及到了什么。)
或者,您可以为所需的前缀调用list_objects_v2()
。但是,它只返回最多1000个对象(),因此您需要继续调用它,而NextContinuationToken
不是null。每个调用都返回一个KeyCount
,这是请求返回的键数。
或者,如果您使用基于资源的bucket.objects.all()
调用,那么boto3将为您执行循环,并将返回一个s3.ObjectSummary
对象列表。您可以简单地使用列表中的len()
来获取计数。
对于有大量对象的桶/文件夹,这两种方法都会非常慢。因此,另一种选择是使用亚马逊S3库存,它可以提供一个每天或每周列出所有对象的CSV文件。它可能不是“当前”,但这是一种非常简单的方法来计数对象,而不必循环通过调用。
https://stackoverflow.com/questions/73640455
复制相似问题