Boto3无法获得存储桶的总大小

jz2*_*z22 2 python amazon-s3 boto amazon-web-services boto3

我正在尝试获取存储桶的总大小。但是total_size返回0。当然,存储桶中有几个文件。如果存储桶中有五个文件,则以下函数将显示五个零。我究竟做错了什么?

bucket = boto3.resource('s3', config=Config(signature_version="s3", s3={'addressing_style': 'path'})).Bucket(name)
for object in bucket.objects.all():
    total_size += object.size
    print(object.size)
Run Code Online (Sandbox Code Playgroud)

hel*_*loV 5

我看到几个问题:

  • 不确定您打给的电话boto3.resource()。那是对的吗?
  • total_size 未初始化

尝试这个:

total_size = 0
bucket = boto3.resource('s3').Bucket('mybucket')
for object in bucket.objects.all():
  total_size += object.size
  print(object.size)
print(total_size)
Run Code Online (Sandbox Code Playgroud)

或一个班轮:

sum([object.size for object in boto3.resource('s3').Bucket('mybucket').objects.all()])
Run Code Online (Sandbox Code Playgroud)