Löschen eines Allzweck-Buckets - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Löschen eines Allzweck-Buckets

Sie können einen leeren Amazon S3 S3-Allzweck-Bucket löschen. Informationen zum Leeren eines Allzweck-Buckets finden Sie unter. Leeren eines Allzweck-Buckets

Sie können einen Bucket mithilfe der Amazon S3 S3-Konsole, der AWS Command Line Interface (AWS CLI) AWS SDKs, der oder der Amazon S3 S3-REST-API löschen.

Wichtig

Bevor Sie einen Allzweck-Bucket löschen, sollten Sie Folgendes beachten:

  • Allzweck-Bucket-Namen sind innerhalb eines globalen Namespaces eindeutig. Wenn Sie einen Bucket löschen, sollten Sie sich bewusst sein, dass ein anderer Bucket denselben allgemeinen Bucket-Namen für einen neuen Bucket verwenden AWS-Konto kann und daher möglicherweise Anfragen entgegennehmen kann, die für den gelöschten Bucket bestimmt sind. Wenn Sie dies verhindern möchten oder wenn Sie weiterhin denselben Bucket-Namen verwenden möchten, löschen Sie den Bucket nicht. Wir empfehlen Ihnen, den Bucket zu leeren und ihn zu behalten und stattdessen alle Bucket-Anfragen nach Bedarf zu blockieren. Für Buckets, die nicht mehr aktiv verwendet werden, empfehlen wir, den Bucket mit allen Objekten zu leeren, um die Kosten zu minimieren und gleichzeitig den Bucket selbst beizubehalten.

  • Wenn Sie einen Bucket für allgemeine Zwecke löschen, wird der Bucket möglicherweise nicht sofort entfernt. Stattdessen stellt Amazon S3 den Bucket zur Löschung in eine Warteschlange. Da Amazon S3 über mehrere Standorte verteilt ist AWS-Regionen, dauert es einige Zeit, bis der Löschvorgang vollständig im gesamten System verbreitet ist und Konsistenz erreicht ist.

  • Wenn der Bucket eine statische Website hostet und Sie eine gehostete Zone von Amazon Route 53, wie unter Tutorial: Konfigurieren einer statischen Website mithilfe einer benutzerdefinierten bei Route 53 registrierten Domäne beschrieben, erstellt und konfiguriert haben, müssen Sie die gehosteten Route 53-Zoneneinstellungen bereinigen, die sich auf den Bucket beziehen. Weitere Informationen finden Sie unter Schritt 2: Löschen der von Route 53 gehosteten Zone.

  • Wenn der Bucket Protokolldaten von Elastic Load Balancing (ELB) empfängt, empfehlen wir, die Übermittlung von ELB-Logs an den Bucket zu beenden, bevor Sie ihn löschen. Erstellt ein anderer Benutzer nach dem Löschen des Buckets einen Bucket mit demselben Namen, dann könnten Ihre Protokolldaten potenziell an diesen Bucket übermittelt werden. Informationen zu ELB-Zugriffsprotokollen finden Sie unter Zugriffsprotokolle für Ihren Classic Load Balancer im Benutzerhandbuch für Classic Load Balancer und Zugriffsprotokolle für Ihren Application Load Balancer im Benutzerhandbuch für Application Load Balancers.

Fehlerbehebung

Wenn Sie einen Amazon S3 S3-Allzweck-Bucket nicht löschen können, sollten Sie Folgendes beachten:

  • Stellen Sie sicher, dass der Bucket leer ist — Sie können Buckets nur löschen, wenn sie keine Objekte enthalten. Stellen Sie sicher, dass der Bucket leer ist. Hinweise zum Leeren eines Buckets finden Sie unter. Leeren eines Allzweck-Buckets

  • Stellen Sie sicher, dass keine Access Points angehängt sind — Sie können Buckets nur löschen, wenn sie keine S3 Access Points oder Multi-Region-Access Points mit demselben Konto verknüpft haben. Bevor Sie den Bucket löschen, löschen Sie alle Access Points mit demselben Konto, die mit dem Bucket verknüpft sind.

  • Stellen Sie sicher, dass Sie über die s3:DeleteBucket entsprechende Berechtigung verfügen — Wenn Sie einen Bucket nicht löschen können, überprüfen Sie gemeinsam mit Ihrem IAM-Administrator, ob Sie über die entsprechende Berechtigung verfügen. s3:DeleteBucket Informationen zum Anzeigen oder Aktualisieren von IAM-Berechtigungen finden Sie unter Ändern von Berechtigungen für einen IAM-Benutzer im IAM-Benutzerhandbuch. Informationen zur Problembehebung finden Sie unter Problembehandlung beim Zugriff verweigert (403 Forbidden) Fehler in Amazon S3.

  • Suchen Sie in s3:DeleteBucket Deny den Richtlinien zur AWS Organizations Servicesteuerung (SCPs) und in den Richtlinien zur Ressourcensteuerung (RCPs) nach Hinweisen — SCPs und Sie RCPs können die Löschberechtigung für einen Bucket verweigern. Weitere Informationen finden Sie unter Service-Kontrollrichtlinien und Ressourcen-Kontrollrichtlinien im AWS Organizations -Benutzerhandbuch.

  • Suchen Sie in Ihrer Bucket-Richtlinie nach s3:DeleteBucket Deny Aussagen — Wenn Sie über s3:DeleteBucket Berechtigungen in Ihrer IAM-Benutzer- oder Rollenrichtlinie verfügen und einen Bucket nicht löschen können, enthält die Bucket-Richtlinie möglicherweise eine Deny Anweisung fürs3:DeleteBucket. Buckets, die von erstellt wurden AWS Elastic Beanstalk , verfügen standardmäßig über eine Richtlinie, die diese Aussage enthält. Bevor Sie den Bucket löschen können, müssen Sie diese Anweisung oder die Bucket-Richtlinie löschen.

Voraussetzungen

Bevor Sie einen Allzweck-Bucket löschen können, müssen Sie ihn leeren. Hinweise zum Leeren eines Buckets finden Sie unter. Leeren eines Allzweck-Buckets

Einen S3-Bucket löschen
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Allzweck-Buckets aus.

  3. Wählen Sie in der Bucket-Liste das Optionsfeld neben dem Namen des Buckets aus, den Sie löschen möchten, und wählen Sie dann oben auf der Seite Löschen aus.

  4. Bestätigen Sie auf der Seite Delete bucket (Bucket löschen), dass Sie den Bucket löschen möchten. Geben Sie dazu den Bucket-Namen in das Textfeld ein und wählen Sie Delete bucket (Bucket löschen).

    Anmerkung

    Wenn der Bucket Objekte enthält, leeren Sie den Bucket, bevor Sie ihn löschen, indem Sie in der Fehlermeldung Dieser Bucket ist nicht leer auf die Schaltfläche Bucket leeren klicken und den Anweisungen auf der Seite Bucket leeren folgen. Kehren Sie dann zur Seite Delete bucket (Bucket löschen) zurück und löschen Sie den Bucket.

  5. Um zu überprüfen, ob Sie den Bucket gelöscht haben, öffnen Sie die Liste der Buckets für allgemeine Zwecke und geben Sie den Namen des Buckets ein, den Sie gelöscht haben. Wenn der Buckets nicht gefunden wird, war der Löschvorgang erfolgreich.

Das folgende Beispiel zeigt, wie ein Allzweck-Bucket mithilfe von geleert und gelöscht wird AWS SDK für Java. Der Code löscht zuerst alle Objekte im Allzweck-Bucket und dann löscht er den Bucket.

Beispiele in anderen Sprachen finden Sie unter Verwenden DeleteBucket mit einem AWS SDK oder CLI in der Amazon Simple Storage Service API-Referenz. Informationen zur Verwendung anderer AWS SDKs finden Sie unter Tools für Amazon Web Services.

Java

Folgendes Java Beispiel löscht einen Bucket, der Objekte enthält. Zuerst löscht das Beispiel alle Objekte und dann den Bucket. Das Beispiel funktioniert für Buckets mit oder ohne aktiviertem Versioning.

Anmerkung

Bei Buckets ohne aktiviertes Versioning können Sie alle Objekte direkt löschen und danach den Bucket löschen. Bei Buckets mit aktiviertem Versioning müssen Sie zuerst alle Objektversionen löschen, bevor Sie den Bucket löschen.

Anweisungen zum Erstellen und Testen eines Arbeitsbeispiels finden Sie im AWS SDK for Java 2.x Entwicklerhandbuch.

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(); } } }

Sie können einen Allzweck-Bucket löschen, der Objekte enthält, AWS CLI wenn für den Bucket die Versionsverwaltung nicht aktiviert ist. Wenn Sie einen Bucket löschen, der Objekte enthält, werden alle Objekte im Bucket dauerhaft gelöscht, einschließlich der Objekte, die in die Speicherklasse S3 Glacier Flexible Retrieval migriert wurden.

Wenn in Ihrem Bucket die Versionierung nicht aktiviert ist, können Sie den AWS CLI Befehl rb (remove bucket) mit dem --force Parameter verwenden, um den Bucket und alle darin enthaltenen Objekte zu löschen. Mit diesem Befehl werden zuerst alle Objekte und dann der Bucket gelöscht.

Wenn die Versionierung aktiviert ist, werden durch die Verwendung des rb Befehls mit dem --force Parameter keine versionierten Objekte gelöscht, sodass das Löschen des Buckets fehlschlägt, weil der Bucket nicht leer ist. Informationen zum Löschen versionierter Objekte finden Sie unter Löschen von Objektversionen.

Um den folgenden Befehl zu verwenden, amzn-s3-demo-bucket ersetzen Sie ihn durch den Namen des Buckets, den Sie löschen möchten:

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

Weitere Informationen finden Sie unter Verwenden von S3-Befehlen auf hoher Ebene mit dem AWS Command Line Interface im AWS Command Line Interface Benutzerhandbuch.