Dengan alat baris perintah aws-cli python terbaru , untuk secara rekursif menghapus semua file di bawah folder dalam keranjang hanya:
aws s3 rm --recursive s3://your_bucket_name/foo/
Atau hapus semua yang ada di bawah keranjang:
aws s3 rm --recursive s3://your_bucket_name
Jika yang Anda inginkan adalah benar-benar menghapus bucket, ada pintasan satu langkah:
aws s3 rb --force s3://your_bucket_name
yang akan menghapus konten di keranjang itu secara rekursif, lalu menghapusnya.
Catatan: s3://
awalan protokol diperlukan agar perintah ini berfungsi
rm
hanya akan menghapus file tetapirb --force
akan menghapus file dan bucket.--recursive
menghapus folder juga.Ini biasanya memerlukan panggilan API khusus per kunci (file), tetapi telah sangat disederhanakan karena diperkenalkannya Amazon S3 - Multi-Object Delete pada Desember 2011:
Lihat jawaban saya untuk pertanyaan terkait hapus dari S3 menggunakan api php menggunakan wildcard untuk informasi lebih lanjut tentang ini dan masing-masing contoh di PHP ( AWS SDK untuk PHP mendukung ini sejak versi 1.4.8 ).
Sementara itu, sebagian besar perpustakaan klien AWS telah memperkenalkan dukungan khusus untuk fungsionalitas ini, misalnya:
Python
Anda dapat mencapai ini dengan antarmuka boto Python yang sangat baik ke AWS kira-kira sebagai berikut (belum teruji, dari atas kepala saya):
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])
Rubi
Ini tersedia sejak versi 1.24 dari AWS SDK untuk Ruby dan catatan rilis juga menyediakan contoh:
bucket = AWS::S3.new.buckets['mybucket'] # delete a list of objects by keys, objects are deleted in batches of 1k per # request. Accepts strings, AWS::S3::S3Object, AWS::S3::ObectVersion and # hashes with :key and :version_id bucket.objects.delete('key1', 'key2', 'key3', ...) # delete all of the objects in a bucket (optionally with a common prefix as shown) bucket.objects.with_prefix('2009/').delete_all # conditional delete, loads and deletes objects in batches of 1k, only # deleting those that return true from the block bucket.objects.delete_if{|object| object.key =~ /\.pdf$/ } # empty the bucket and then delete the bucket, objects are deleted in batches of 1k bucket.delete!
Atau:
sumber
aws cli
seperti @ number5 di bawah docs.aws.amazon.com/cli/latest/reference/s3/rm.htmlAnda juga dapat mempertimbangkan untuk menggunakan Amazon S3 Lifecycle untuk membuat kedaluwarsa untuk file dengan awalan
foo/bar1
.Buka konsol browser S3 dan klik sebuah ember. Kemudian klik Properties dan kemudian LifeCycle.
Buat aturan kedaluwarsa untuk semua file dengan awalan
foo/bar1
dan setel tanggal ke 1 hari sejak file dibuat.Simpan dan semua file yang cocok akan hilang dalam waktu 24 jam.
Jangan lupa untuk menghapus aturan tersebut setelah Anda selesai!
Tidak ada panggilan API, tidak ada pustaka, aplikasi, atau skrip pihak ketiga.
Saya baru saja menghapus beberapa juta file dengan cara ini.
Tangkapan layar yang menunjukkan jendela Aturan Siklus Hidup (catatan dalam gambar ini, Awalan telah dikosongkan, memengaruhi semua kunci dalam keranjang):
sumber
Dengan
s3cmd
paket yang diinstal pada mesin Linux, Anda dapat melakukan inis3cmd rm s3://foo/bar --recursive
sumber
s3cmd del s3://BUCKET/OBJECT
atau penghapusan seluruh keranjangs3cmd rb s3://BUCKET
. Tidak adas3cmd rm
, setidaknya menuruts3cmd --help
.s3cmd rm
sedang dalam bantuan pada 2019 (sebagai alias untuk del), ini adalah jawaban yang sangat bagus. Alataws
cli hanya bekerja pada/
prefiks pengakhiran, tetapi tidak pada folder dan prefiks nama file parsial, sedangkan s3cmd bekerja pada kedua kasus. Jawaban ini membutuhkan lebih banyak suara positif, saya harus menggulir terlalu jauh untuk menemukan solusi yang tepat.Jika Anda ingin menghapus semua objek dengan awalan "foo /" menggunakan Java AWS SDK 2.0
sumber
Jika menggunakan AWS-SKD untuk ruby V2.
mohon perhatiannya, semua "foo / *" di bawah keranjang akan dihapus.
sumber
Saya baru saja menghapus semua file dari bucket saya dengan menggunakan PowerShell:
sumber
Baru saja melihat bahwa Amazon menambahkan opsi "Cara Mengosongkan Keranjang" ke menu konsol AWS:
http://docs.aws.amazon.com/AmazonS3/latest/UG/DeletingaBucket.html
sumber
Jawaban yang dipilih kehilangan satu langkah.
Bantuan per aws s3:
sumber
Cara terbaik adalah menggunakan aturan siklus hidup untuk menghapus seluruh konten bucket. Secara terprogram Anda dapat menggunakan kode berikut (PHP) untuk aturan siklus hidup PUT.
Dalam kasus di atas semua objek akan dihapus Tanggal mulai - "Hari ini GMT tengah malam".
Anda juga dapat menentukan Hari sebagai berikut. Tetapi dengan Hari itu akan menunggu setidaknya 24 jam (minimal 1 hari) untuk mulai menghapus isi ember.
sumber
Saya perlu melakukan hal berikut ...
sumber
Di konsol manajemen S3, klik tanda centang untuk bucket, dan klik tombol kosong dari kanan atas.
sumber