Can Python delete specific multiple files in S3?
I want to delete multiple files with specific extensions.
This script removes all files.
These are the various specific files that I want to delete:
XXX.tar.gz
XXX.txt
** Current code: ** (all files deleted)
import boto3
accesskey = "123"
secretkey = "123"
region = "ap-northeast-1"
s3 = boto3.resource ('s3', aws_access_key_id = accesskey, aws_secret_access_key = secretkey, region_name = region)
bucket = s3.Bucket ('test')
files = [os.key for os in bucket.objects.filter (Prefix = "myfolder / test /")]
tar_files = [file to file in files if file.endswith ('tar.gz')]
#print (f'All files: {files} ')
#print (f'CSV files: {csv_files} ')
objects_to_delete = s3.meta.client.list_objects (Bucket = "test", Prefix = "myfolder / test /")
delete_keys = {'Objects': []}
delete_keys ['Objects'] = [{'Key': tar_files} for tar_files in [obj ['Key'] for obj in objects_to_delete.get ('Content', [])]]
s3.meta.client.delete_objects (Bucket = "test", Delete = delete_keys)
If anyone knows, please let me know.