Ciò richiedeva una chiamata API dedicata per chiave (file), ma è stata notevolmente semplificata grazie all'introduzione di Amazon S3 - Multi-Object Delete nel dicembre 2011:
Il nuovo Multi-Object Delete di Amazon S3 ti dà la possibilità di eliminare fino a 1000 oggetti da un bucket S3 con una singola richiesta.
Per ulteriori informazioni su questo e sui rispettivi esempi in PHP, vedere la mia risposta alla domanda correlata Elimina da S3 utilizzando api php utilizzando caratteri jolly (l' SDK AWS per PHP lo supporta dalla versione 1.4.8 ).
La maggior parte delle librerie client AWS ha nel frattempo introdotto il supporto dedicato per questa funzionalità in un modo o nell'altro, ad esempio:
Pitone
Puoi ottenere ciò con l'eccellente interfaccia boto Python per AWS più o meno come segue (non testato, dalla parte superiore della mia testa):
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])
Rubino
Questo è disponibile in quanto la versione 1.24 del AWS SDK per Ruby e le note di rilascio forniscono un esempio così:
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!
O:
AWS::S3::Bucket.delete('your_bucket', :force => true)