Menghapus bucket - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghapus bucket

Anda dapat menghapus bucket Amazon S3 yang kosong. Sebelum menghapus bucket, pertimbangkan hal berikut ini:

  • Nama bucket unik. Jika Anda menghapus bucket, AWS pengguna lain dapat menggunakan nama tersebut.

  • Jika bucket menghosting situs web statis, dan Anda membuat serta mengonfigurasi zona Amazon Route 53 yang di-hosting seperti yang dijelaskan dalam Tutorial: Mengonfigurasi situs web statis menggunakan domain kustom yang terdaftar di Route 53, Anda harus membersihkan pengaturan zona Route 53 yang di-hosting yang berkaitan dengan bucket tersebut. Untuk informasi selengkapnya, lihat Langkah 2: Menghapus Route 53 zona yang di-hosting.

  • Jika bucket menerima data log dari Elastic Load Balancing (ELB): Kami sarankan agar Anda menghentikan pengiriman log ELB ke bucket sebelum menghapusnya. Setelah Anda menghapus bucket, jika pengguna lain membuat bucket menggunakan nama yang sama, data log Anda berpotensi dikirim ke bucket tersebut. Untuk informasi tentang log akses ELB, lihat Mengakses log dalam Panduan Pengguna untuk Penyeimbang Beban Klasik dan Mengakses log dalam Panduan Pengguna untuk Penyeimbang Beban Aplikasi.

Pemecahan Masalah

Jika Anda tidak dapat menghapus bucket Amazon S3, pertimbangkan hal berikut ini:

  • Pastikan bucket kosong–Anda hanya dapat menghapus bucket yang tidak memiliki objek di dalamnya. Pastikan bucket kosong.

  • Pastikan tidak ada titik akses yang terpasang–Anda hanya dapat menghapus bucket yang tidak memiliki titik akses yang melekat padanya. Hapus titik akses apa pun yang dilampirkan ke bucket, sebelum menghapus bucket tersebut.

  • AWS Organizations kebijakan kontrol layanan (SCP) — Kebijakan kontrol layanan dapat menolak izin penghapusan pada bucket. Untuk informasi selengkapnya tentang SCP, lihat Kebijakan kontrol layanan di AWS Organizations Panduan Pengguna.

  • s3: DeleteBucket izin — Jika Anda tidak dapat menghapus bucket, bekerjalah dengan administrator IAM Anda untuk mengonfirmasi bahwa Anda memiliki izin. s3:DeleteBucket Untuk informasi tentang cara melihat atau memperbarui izin IAM, lihat Mengubah izin untuk pengguna IAM di Panduan Pengguna IAM.

  • s3: DeleteBucket deny statement — Jika Anda memiliki s3:DeleteBucket izin dalam kebijakan IAM Anda dan Anda tidak dapat menghapus bucket, kebijakan bucket mungkin menyertakan pernyataan penolakan untuk. s3:DeleteBucket Bucket yang dibuat oleh ElasticBeanstalk memiliki kebijakan yang berisi pernyataan ini secara default. Sebelum Anda dapat menghapus bucket, Anda harus menghapus pernyataan ini, atau kebijakan bucket tersebut.

penting

Nama bucket bersifat unik. Jika Anda menghapus bucket, AWS pengguna lain dapat menggunakan nama tersebut. Jika Anda ingin terus menggunakan nama bucket yang sama, jangan menghapus bucket. Kami menyarankan agar Anda mengosongkan bucket dan menyimpannya.

Untuk menghapus S3 bucket
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di Bucket, pilih opsi di samping nama bucket yang ingin Anda hapus, lalu pilih Hapus di bagian atas halaman.

  3. Di halaman Hapus bucket, konfirmasikan bahwa Anda ingin menghapus bucket dengan memasukkan nama bucket ke dalam bidang teks, lalu pilih Hapus bucket.

    catatan

    Jika bucket berisi objek apa pun, kosongkan bucket sebelum menghapusnya dengan memilih tautan konfigurasi bucket kosong di peringatan kesalahan Bucket ini tidak kosong dan mengikuti instruksi di halaman Kosongkan bucket. Lalu kembali ke halaman Hapus bucket dan hapus bucket tersebut.

  4. Untuk memverifikasi bahwa Anda telah menghapus bucket, buka daftar Bucket dan masukkan nama bucket yang Anda hapus. Jika bucket tidak dapat ditemukan, penghapusan Anda berhasil.

Contoh berikut menunjukkan cara menghapus bucket menggunakan AWS SDK for Java. Pertama, kode menghapus objek di dalam bucket, kemudian menghapus bucket. Untuk informasi tentang SDK AWS lainnya, lihat Alat untuk Amazon Web Services.

Java

Contoh Java berikut ini menghapus bucket yang berisi objek. Contoh ini menghapus semua objek, lalu menghapus bucket. Contoh ini berfungsi untuk bucket dengan atau tanpa mengaktifkan Penentuan Versi.

catatan

Untuk bucket tanpa Penentuan Versi diaktifkan, Anda dapat menghapus semua objek secara langsung dan kemudian menghapus bucket. Untuk bucket dengan Penentuan Versi diaktifkan, Anda harus menghapus semua versi objek sebelum menghapus bucket.

Untuk instruksi mengenai pembuatan dan pengujian sampel kerja, lihat Menguji Contoh Kode Java Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.*; import java.util.Iterator; public class DeleteBucket2 { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); // Delete all objects from the bucket. This is sufficient // for unversioned buckets. For versioned buckets, when you attempt to delete // objects, Amazon S3 inserts // delete markers for all objects, but doesn't delete the object versions. // To delete objects from versioned buckets, delete all of the object versions // before deleting // the bucket (see below for an example). ObjectListing objectListing = s3Client.listObjects(bucketName); while (true) { Iterator<S3ObjectSummary> objIter = objectListing.getObjectSummaries().iterator(); while (objIter.hasNext()) { s3Client.deleteObject(bucketName, objIter.next().getKey()); } // If the bucket contains many objects, the listObjects() call // might not return all of the objects in the first listing. Check to // see whether the listing was truncated. If so, retrieve the next page of // objects // and delete them. if (objectListing.isTruncated()) { objectListing = s3Client.listNextBatchOfObjects(objectListing); } else { break; } } // Delete all object versions (required for versioned buckets). VersionListing versionList = s3Client.listVersions(new ListVersionsRequest().withBucketName(bucketName)); while (true) { Iterator<S3VersionSummary> versionIter = versionList.getVersionSummaries().iterator(); while (versionIter.hasNext()) { S3VersionSummary vs = versionIter.next(); s3Client.deleteVersion(bucketName, vs.getKey(), vs.getVersionId()); } if (versionList.isTruncated()) { versionList = s3Client.listNextBatchOfVersions(versionList); } else { break; } } // After all objects and object versions are deleted, delete the bucket. s3Client.deleteBucket(bucketName); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client couldn't // parse the response from Amazon S3. e.printStackTrace(); } } }

Anda dapat menghapus bucket yang berisi objek dengan AWS CLI jika tidak mengaktifkan versi. Saat Anda menghapus bucket yang berisi objek, semua objek dalam bucket dihapus secara permanen, termasuk objek yang ditransisikan ke kelas penyimpanan S3 Glacier.

Jika bucket Anda tidak mengaktifkan versi, Anda dapat menggunakan AWS CLI perintah rb (hapus bucket) dengan --force parameter untuk menghapus bucket dan semua objek di dalamnya. Perintah ini menghapus semua objek terlebih dahulu, kemudian menghapus bucket.

Jika Penentuan Versi diaktifkan, objek berversi tidak akan dihapus dalam proses ini, yang akan menyebabkan penghapusan bucket gagal karena bucket tidak akan kosong. Untuk informasi selengkapnya tentang menghapus objek berversi, lihat Menghapus versi objek.

$ aws s3 rb s3://bucket-name --force

Untuk informasi selengkapnya, lihat Menggunakan Perintah S3 Tingkat Tinggi dengan AWS Command Line Interface Panduan Pengguna. AWS Command Line Interface