我希望在我的S3亚马逊网络服务帐户中找到每个对象的大小。或者,列出大小超过2 GB的对象。
我已经尝试了按存储桶列出,我能够获得总大小:
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
size = 0
for o in bucket.objects.all():
size += o.size
print ('s3 size = %.3f GB' % (size/1024/1024/1024))我正在尝试查找类似于AWS CLI命令的输出,该命令提供对象名称和大小。
我知道S3根据请求列出了多达1K的对象(分页),我必须对其进行解析。此外,如果数据桶很大(几百万到数十亿),上市将会非常艰难。
非常感谢您在这里提供的任何意见。
谢谢
发布于 2020-10-17 12:51:37
打印所有对象及其大小:
for o in bucket.objects.all():
print(o.key, o.content_length) 要仅打印大于2 2GB的对象:
for o in bucket.objects.all():
if o.size > 2 * 1024 * 1024 * 1024:
print(o.key, o.size) 但是,如果您有数百万个对象,我建议您使用Amazon S3 Inventory,它可以提供每日或每周的CSV文件,列出所有对象(包括它们的大小)。
https://stackoverflow.com/questions/64398337
复制相似问题