我想获得Amazon S3存储分区的大小(字节和#键)。
我正在寻找一种高效方式来获取存储桶的大小。
一种可能的方式( NOT 高效):我可以获取存储桶的密钥列表并总结每个密钥的大小。当我有数千个密钥时,这是低效的,因为我必须查找每个密钥的大小。
是否有高效解决方案?
更新:
以下代码不是我想要的(因为它效率不高):
bucket = conn.get_bucket("bucket_name")
total_size = 0
for key in bucket.list():
total_size += key.size
答案 0 :(得分:2)
这似乎没有直接的要求。您可以遍历键并总结。
bucket = conn.get_bucket(self.container)
size = 0
for key in bucket.list():
size += key.size
仅当存储桶的键数较少且计算频率不高时才应使用此方法。
检查this(非Boto)以获得更有用的选项。
答案 1 :(得分:0)
我发现了一些东西,您可以使用这些代码获取存储桶中的密钥数量:
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 的大小(以字节为单位)??