Bulk Delete S3 Objects by LastModified Date
This simple script will look through a bucket to find all objects that match a `LastModified` date and delete. This can be adjusted to delete objects before, after, or matching the date specified. Use at your own risk.

This simple script will look through a bucket to find all objects that match a LastModified
date and delete. This can be adjusted to delete objects before, after, or matching the date specified. Use at your own risk.
import boto3
from datetime import datetime, timezone
s3 = boto3.client("s3")
bucket = "INSERT_BUCKET_NAME"
paginator = s3.get_paginator("list_objects_v2")
pages = paginator.paginate(Bucket=bucket)
date_check = datetime(2021, 11, 1)
keys_to_delete = []
for page in pages:
for object in page["Contents"]:
if object["LastModified"] > date_check.replace(tzinfo=timezone.utc):
keys_to_delete.append({"Key": object["Key"]})
s3.delete_objects(Bucket=bucket, Delete={"Objects": keys_to_delete})
Gist here.