我试图使用boto3来列出我放入列表中的所有桶中有多少个对象,一旦我知道每个桶中的对象的数量,我就想删除其中的所有对象,使所有桶都在0中。
这是我的片段:
import boto3
import botocore
client = boto3.client('s3')
# Using this paginator I can see all of the objects in the bucket
paginator = client.get_paginator('list_objects_v2')
def s3_list_delete():
bucket_list = [
'bucket-1',
'bucket-2',
'bucket-3'
]
for bucket in bucket_list:
count = 0
for page in paginator.paginate(Bucket=bucket):
count += page['KeyCount']
print(f'In the S3 Bucket "{bucket}" there are "{count}" number of objects')
obj_delete=str(input('Want to empty all of the Buckets? Type Y to confirm: '))
if obj_delete == 'Y':
for objs in bucket.objects.all():
objs.delete()
print('Objects have been deleted')
else:
return False
s3_list_delete()我唯一的输出是每个桶有多少个对象,在按Y之后,什么都没有。
我认为这里的问题是如何迭代我的S3列表中每个桶的对象,比如清空bucket_list的第一个桶中的对象等等……
发布于 2022-03-30 23:54:05
import boto3
s3 = boto3.resource('s3')
bucket_list = []
def emptyBucket(bucket_list):
for bucket in bucket_list:
count = 0
print(bucket)
for object in s3.Bucket(bucket):
print(object.key)
object.delete()
count +=1
print(bucket,'-', count)
emptyBucket(bucket_list)这段代码使"bucket_list“中的所有桶都为空。它打印所有对象的名称和对象的数量。
https://stackoverflow.com/questions/71651555
复制相似问题