как заставить этот скрипт python проходить через ключи объектов s3 и указывать, какое ведро пусто, если ключей не существует

#amazon-web-services #amazon-s3 #boto3 #python-3.8

Вопрос:

Эта функция выводит список сегментов s3, а также их ключи объектов. Как заставить эту функцию печатать только список пустых ведер?

 import boto3

s3 = boto3.resource('s3')

def empty_s3():
#This will print list of all buckets
  print("nList of S3 buckets:")
  for bucket in s3.buckets.all():
    print(bucket.name)
#This will print s3 bucket object keys
    for object in bucket.objects.all():
      print(object)
 

Комментарии:

1. Что не так с текущим сценарием? Какие-нибудь ошибки?

2. В этом скрипте нет ошибок. Он печатает список ведер и их объектов, но мне нужно распечатать только список пустых ведер.

Ответ №1:

Вы можете просто проверить количество объектов:

 import boto3

s3_resource = boto3.resource('s3')

for bucket in s3_resource.buckets.all():
    objects = list(bucket.objects.all())

    # Empty bucket?
    if len(objects) == 0:
        print(bucket.name)