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. Untuk informasi tentang mengosongkan ember, lihat. Mengosongkan bucket

Anda dapat menghapus bucket dengan menggunakan konsol Amazon S3, AWS Command Line Interface (AWS CLI), the AWS SDKs, atau Amazon S3 REST API.

penting

Sebelum menghapus bucket, pertimbangkan hal berikut ini:

  • Nama bucket unik. Jika Anda menghapus bucket, AWS pengguna lain dapat menggunakan nama untuk bucket baru, dan berpotensi menerima permintaan yang ditujukan untuk bucket yang dihapus. Jika Anda ingin mencegah hal ini, atau jika Anda ingin terus menggunakan nama bucket yang sama, jangan hapus bucket. Kami menyarankan Anda mengosongkan ember dan menyimpannya, dan sebagai gantinya, memblokir permintaan bucket apa pun sesuai kebutuhan.

  • 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), sebaiknya hentikan 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 Log akses untuk Classic Load Balancer Anda di Panduan Pengguna untuk Classic Load Balancers dan Access log untuk Application Load Balancer Anda di Panduan Pengguna untuk Application Load Balancers.

Pemecahan Masalah

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

  • Pastikan ember kosong — Anda dapat menghapus ember hanya jika mereka tidak memiliki objek di dalamnya. Pastikan ember kosong. Untuk informasi tentang mengosongkan ember, lihat. Mengosongkan bucket

  • Pastikan tidak ada titik akses yang terlampir — Anda dapat menghapus bucket hanya jika mereka tidak memiliki Titik Akses S3 atau Titik Akses Multi-Wilayah yang dilampirkan dalam akun yang sama. Sebelum menghapus bucket, hapus titik akses akun yang sama yang dilampirkan ke bucket.

  • AWS Organizations kebijakan kontrol layanan (SCPs) dan kebijakan kontrol sumber daya (RCPs) — SCPs dan RCPs dapat menolak izin hapus pada bucket. Untuk informasi selengkapnya, lihat kebijakan kontrol layanan dan kebijakan kontrol sumber daya di Panduan AWS Organizations Pengguna.

  • s3:DeleteBucketizin — Jika Anda tidak dapat menghapus bucket, bekerjalah dengan administrator IAM Anda untuk mengonfirmasi bahwa Anda memiliki s3:DeleteBucket izin. Untuk informasi tentang cara melihat atau memperbarui izin IAM, lihat Mengubah izin untuk pengguna IAM di Panduan Pengguna IAM. Untuk informasi pemecahan masalah, lihat Memecahkan masalah akses ditolak (403 Forbidden) kesalahan di Amazon S3.

  • s3:DeleteBucket Denypernyataan — Jika Anda memiliki s3:DeleteBucket izin dalam kebijakan IAM dan Anda tidak dapat menghapus bucket, kebijakan bucket mungkin menyertakan Deny pernyataan untuk. s3:DeleteBucket Bucket yang dibuat oleh AWS Elastic Beanstalk memiliki kebijakan yang berisi pernyataan ini secara default. Sebelum Anda dapat menghapus bucket, Anda harus menghapus pernyataan ini, atau kebijakan bucket tersebut.

Prasyarat

Sebelum Anda dapat menghapus ember, Anda harus mengosongkannya. Untuk informasi tentang mengosongkan ember, lihat. Mengosongkan bucket

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

  2. Di panel navigasi kiri, pilih Bucket tujuan umum atau ember Direktori.

  3. Di daftar bucket, pilih tombol opsi di sebelah nama bucket yang ingin Anda hapus, lalu pilih Hapus di bagian atas halaman.

  4. 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 tombol Empty bucket di peringatan kesalahan This bucket is not empty dan ikuti petunjuk di halaman Ember kosong. Lalu kembali ke halaman Hapus bucket dan hapus bucket tersebut.

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

Contoh berikut menunjukkan cara menghapus bucket dengan menggunakan AWS SDK for Java. Kode pertama menghapus semua objek di ember, dan kemudian menghapus ember. Untuk informasi tentang penggunaan lainnya AWS SDKs, lihat Alat untuk Amazon Web Services.

Java

Berikut ini Java contoh menghapus ember 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 petunjuk cara membuat dan menguji sampel yang berfungsi, lihat Memulai di Panduan AWS SDK for Java Pengembang.

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 bucket tidak mengaktifkan versi. Saat Anda menghapus bucket yang berisi objek, semua objek dalam bucket akan dihapus secara permanen, termasuk objek yang telah dialihkan ke kelas penyimpanan S3 Glacier Flexible Retrieval.

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 pembuatan versi diaktifkan, menggunakan rb perintah dengan --force parameter tidak akan menghapus objek berversi, sehingga penghapusan bucket gagal karena bucket tidak kosong. Untuk informasi selengkapnya tentang menghapus objek berversi, lihat Menghapus versi objek.

Untuk menggunakan perintah berikut, ganti amzn-s3-demo-bucket dengan nama bucket yang ingin Anda hapus:

$ aws s3 rb s3://amzn-s3-demo-bucket --force

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