Kiedyś wymagało to dedykowanego wywołania API dla każdego klucza (pliku), ale zostało znacznie uproszczone ze względu na wprowadzenie Amazon S3 - Multi-Object Delete w grudniu 2011:
Nowa funkcja usuwania wielu obiektów Amazon S3 umożliwia usunięcie do 1000 obiektów z zasobnika S3 za pomocą jednego żądania.
Zobacz moją odpowiedź na powiązane pytanie, usuń z S3 używając api php z użyciem symboli wieloznacznych, aby uzyskać więcej informacji na temat tego i odpowiednich przykładów w PHP ( AWS SDK dla PHP obsługuje to od wersji 1.4.8 ).
Większość bibliotek klienta AWS w międzyczasie wprowadziła dedykowane wsparcie dla tej funkcji w taki czy inny sposób, np .:
Pyton
Możesz to osiągnąć dzięki doskonałemu interfejsowi Boto Python do AWS z grubsza w następujący sposób (nieprzetestowane, od samego początku):
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])
Rubin
Funkcja ta jest dostępna od wersji 1.24 z AWS SDK dla Ruby i release notes podać przykład także:
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!
Lub:
AWS::S3::Bucket.delete('your_bucket', :force => true)