Cela nécessitait auparavant un appel d'API dédié par clé (fichier), mais a été considérablement simplifié en raison de l'introduction d' Amazon S3 - Multi-Object Delete en décembre 2011:
La nouvelle suppression multi-objets d' Amazon S3 vous donne la possibilité de supprimer jusqu'à 1000 objets d'un compartiment S3 avec une seule demande.
Voir ma réponse à la question associée supprimer de S3 à l'aide de l'api php en utilisant un caractère générique pour plus d'informations à ce sujet et des exemples respectifs en PHP (le kit AWS SDK pour PHP prend en charge cela depuis la version 1.4.8 ).
La plupart des bibliothèques clientes AWS ont entre-temps introduit une prise en charge dédiée pour cette fonctionnalité d'une manière ou d'une autre, par exemple:
Python
Vous pouvez y parvenir avec l'excellent boto interface Python avec AWS à peu près comme suit (non testé, du haut de ma tête):
import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket("bucketname")
bucketListResultSet = bucket.list(prefix="foo/bar")
result = bucket.delete_keys([key.name for key in bucketListResultSet])
Rubis
Ceci est disponible depuis la version 1.24 du kit SDK AWS pour Ruby et les notes de publication fournissent également un exemple:
bucket = AWS::S3.new.buckets['mybucket']
bucket.objects.delete('key1', 'key2', 'key3', ...)
bucket.objects.with_prefix('2009/').delete_all
bucket.objects.delete_if{|object| object.key =~ /\.pdf$/ }
bucket.delete!
Ou:
AWS::S3::Bucket.delete('your_bucket', :force => true)