Итак, я написал отличный скрипт для удаления всего в корзине s3, о котором я рассказал ниже. Единственная проблема - этот скрипт тоже удаляет каталоги У меня есть корзина для приема данных, которая должна хранить свои каталоги, но файлы должны удаляться каждый день. У кого-нибудь есть идеи, как я могу изменить его, чтобы не удалять каталоги?
Я видел команды CLI, которые могут делать что-то похожее на это, но мне нужно выяснить, как запустить их из лямбда-функции
import json
import boto3
def empty_s3_bucket():
client = boto3.client(
's3'
)
bucketNames = ["bucket1","bucket2"]
for bucketName in bucketNames:
response = client.list_objects_v2(Bucket=bucketName)
if 'Contents' in response:
for item in response['Contents']:
print('deleting file', item['Key'])
client.delete_object(Bucket=bucketName, Key=item['Key'])
while response['KeyCount'] == 1000:
response = client.list_objects_v2(
Bucket=S3_BUCKET,
StartAfter=response['Contents'][0]['Key'],
)
for item in response['Contents']:
print('deleting file', item['Key'])
client.delete_object(Bucket=S3_BUCKET, Key=item['Key'])
def lambda_handler(event, context):
empty_s3_bucket()
return {
'statusCode': 200,
'body': json.dumps('Buckets cleared!')
}