我想计算python中S3存储桶中所有文件的大小,这是我到目前为止尝试的代码:
import boto3
s3_client = boto3.client('s3')
bucket = 'bucket-name'
prefix = 'path/to/folder'
len=0
response = s3_client.list_objects(Bucket = bucket,Prefix = prefix)
for file in response['Contents']:
name = file['Key'].rsplit('/', 1)
len+=name['ContentLength']
我不确定如何获取文件的大小:name['ContentLength']
有什么想法吗?
答案 0 :(得分:2)
请改用file['Size']
。
如果使用list_objects
方法,则必须检查response['IsTruncated']
的值,因为响应最多包含1000个对象。如果IsTruncated
为True
,请使用response['NextMarker']
作为Prefix
列出广告资源中的剩余对象。
或者,您可以使用Bucket
类
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
total_size = 0
for k in bucket.objects.all():
total_size += k.size