我们的S3桶上有多个文件,具有相同的文件扩展名。
我想找到一种方法来列出所有这些文件扩展名,并在我们的桶中以人类可读的格式占用大量的空间。
例如,与其仅仅列出使用aws s3 ls s3://ebio-rddata --recursive --human-readable --summarize的所有文件
我只想列出文件扩展名和它们的总大小:
.basedon.peaks.l2inputnormnew.bed.full | total size: 100 GB
.adapterTrim.round2.rmRep.sorted.rmDup.sorted.bam | total size: 200 GB
.logo.svg | total size: 400 MB发布于 2022-01-12 22:33:00
下面是一个Python脚本,它将按扩展对对象进行计数,并按扩展计算总大小:
import boto3
s3_resource = boto3.resource('s3')
sizes = {}
quantity = {}
for object in s3_resource.Bucket('jstack-a').objects.all():
if not object.key.endswith('/'):
extension = object.key.split('.')[-1]
sizes[extension] = sizes.get(extension, 0) + object.size
quantity[extension] = quantity.get(extension, 0) + 1
for extension, size in sizes.items():
print(extension, quantity[extension], size)如果有一个没有扩展的对象,那就有点好笑了。
https://stackoverflow.com/questions/70686857
复制相似问题