如何使用Python(Boto lib)获得Amazon S3存储桶的大小?

htrmnn0y  于 2023-02-17  发布在  Python
关注(0)|答案(2)|浏览(175)

我想获得Amazon S3存储桶的大小(以字节和键数为单位)。
我正在寻找一种有效的方法来获得桶的大小。
一种可能的方法(高效):我可以得到bucket的键列表,然后把每个键的大小加起来,当我有上千个键时,这是效率低下的,因为我必须寻找每个键的大小。
是否有任何有效的解决方案?
下面的代码不是我想要的(因为它效率不高):

bucket = conn.get_bucket("bucket_name")
total_size = 0
for key in bucket.list():
   total_size += key.size
erhoui1w

erhoui1w1#

似乎没有直接调用来完成这个操作,你可以遍历键并求和。

bucket = conn.get_bucket(self.container)
size = 0
for key in bucket.list():
   size += key.size

只有在存储桶的键数较少且计算不经常执行时才应使用此选项。
选中this(Not Boto)可获得更有用的选项。

3okqufwl

3okqufwl2#

我发现了一些东西,你可以用这些代码得到桶里的钥匙数量:

from boto.s3.connection import S3Connection

conn = S3Connection('<aws access key>', '<aws secret key>')
bucket = conn.get_bucket("bucket_name")
number_of_keys = len(bucket.get_all_keys())})

我仍然需要 bucket 的大小(字节)??

相关问题