webentwicklung-frage-antwort-db.com.de

Leerer S3-Bucket kann nicht gelöscht werden

Ich habe einen S3-Eimer, der zu 100% leer ist. Die Versionierung wurde im Bucket nie aktiviert. Ich kann den Eimer jedoch immer noch nicht entfernen. Ich habe es über die Konsole und das CLI-Tool versucht. Auf der Konsole wird nur "Error" ohne Fehlermeldung angezeigt. Von cli und api sagt es mir: "Beim Aufruf der DeleteBucket-Operation ist ein Fehler aufgetreten (BucketNotEmpty): Der Bucket, den Sie löschen wollten, ist nicht leer." Ich habe folgendes ausprobiert:

aws s3 rb s3://<bucket_name> --force -> BucketNotEmpty

aws s3 rm s3://<bucket_name> --recursive -> Keine Ausgabe (weil sie schon leer ist)

aws s3api list-object-versions --bucket <bucket_name> -> Keine Ausgabe (weil Versionierung nie aktiviert wurde)

aws s3api list-multipart-uploads --bucket <bucket_name> -> Keine Ausgaben

aws s3api list-objects --delimiter=/ --prefix= --bucket <bucket_name> -> Keine Ausgabe (weil sie leer ist)

  • Es hat keine Abhängigkeiten (es wird nicht von Cloudfront oder irgendetwas anderem verwendet, das mir bekannt ist).
  • Der Eimer war seit ungefähr 5 Tagen leer.
  • Ich konnte einen anderen sehr ähnlichen Bucket mit demselben IAM-Benutzer löschen. Außerdem hat mein IAM-Benutzer Administratorzugriff.
13
Tim Martin

Ich stand vor demselben Problem. Ich konnte das Problem beheben, indem ich in den Bucket ging und die "Bucket-Richtlinie" für den Bucket löschte. Danach funktionierte das Löschen des Eimers korrekt.

Ich habe dies über die AWS-Konsole für einen S3-Eimer gemacht, der mit Elastic Beanstalk erstellt wurde (dh elastische Bohnenstange-us-west-2-861587641234). Ich kann mir vorstellen, dass das Erstellungsskript eine Richtlinie enthält, damit Benutzer den Bucket nicht versehentlich löschen.

43
Federico

Ich hatte ein ähnliches Problem und konnte den Eimer löschen, nachdem ich über Nacht gewartet hatte. Es ist eine ziemlich schwache Lösung, kann aber Sie und andere Zeit vor dem Klopfen retten. 

Wenn es nach allen Aktionen in den Kommentaren immer noch nicht gelöscht wird, gibt es einige Dinge, die nur der AWS-Support ordnungsgemäß beheben kann. Wieder eine schwache Antwort, aber registrieren Sie ein Ticket beim AWS-Support und veröffentlichen Sie ihre Antwort hier als Antwort für andere.

5
Eric Nord

Das war es, was für mich funktioniert hatte. Ich habe keine Versionierung im Bucket aktiviert. Wenn Sie ein Objekt aus dem s3-Bucket löschen, wird dieses Objekt mit einer Löschmarkierung versehen und aus der Liste ausgeblendet. Wenn Sie auf "Version anzeigen" klicken, werden Ihre gelöschten Objekte mit der Löschmarkierung angezeigt. Wählen Sie dieses Objekt (mit Löschmarkierung) und löschen Sie es erneut. Dies ist eine permanente Löschung. Jetzt ist Ihr Objekt wirklich weg und Ihr Eimer ist wirklich leer. Danach konnte ich meinen Eimer löschen.

Ich vermute, versioning = true bedeutet nur, dass s3 Versionen des Objekts erstellt, wenn Sie mit demselben Namen hochladen. 

3
Savita

Ich hatte das gleiche Problem, nach ein wenig Recherche musste ich die Bucket-Richtlinie löschen, bevor ich den Bucket löschte. Und dann funktioniert es!

enter image description here

2
Dan

Ich hatte das gleiche Problem und es gab keine Richtlinie. Daher wurde die Berechtigung für die E-Mail hinzugefügt, mit der ich angemeldet und gespeichert wurde. Nachdem ich mir die Erlaubnis erteilt hatte, konnte ich den Eimer löschen. Ich hatte auch einen anderen Eimer mit einer Richtlinie, also lösche ich die Richtlinie und konnte diesen Eimer auch löschen.

1
Dustin

Nach dem Versuch, einen Bucket zu löschen, wird er manchmal nicht wirklich gelöscht, aber die Berechtigungen gehen verloren.

In meinem Fall ging ich zur Registerkarte "Berechtigungen", erteilte mir erneut Berechtigungen und konnte sie dann entfernen

1
Alex

So löschen Sie einen Elastic Beanstalk-Speicherbehälter (Konsole)

1. Open the Amazon S3 Management Console
2. Select the Elastic Beanstalk storage bucket.
3. Choose Properties.
4. Choose Permissions.
5. Choose Edit Bucket Policy - Allow to delete and make it public.
6. Save.
7. Choose Actions and then choose Delete Bucket.
8, Type the name of the bucket and then choose Delete.
0
VYN

ich habe die Erlaubnis für den S3-Bucket öffentlich gemacht und jedem Zugriff gewährt. Dann konnte ich den Bucket von der AWS-Konsole löschen.

0
Manjunath

Ich verwende die AWS Console, um den Bucket zu löschen.

hatte das gleiche Problem und ich habe alle oben genannten Lösungen ausprobiert und nicht für mich gearbeitet, dann habe ich einen anderen Weg gefunden ... Mein Eimer wurde von ElasticBean verwendet und wenn ich den Eimer löschte, erstellte der ElasticBean automatisch einen. Ich löschte dann den ElasticBean-Dienst und versuchte, den Bucket erneut zu löschen, diesmal jedoch nicht mehr. Der Bucket war leer, erlaubte jedoch nicht das Löschen .. Ich versuchte, die Berechtigungen zu ändern, aber der Bucket war immer noch da.

Schließlich löschte ich die Bucket-Richtlinie und kam zurück und löschte den Bucket, und es war verschwunden . Problem gelöst

0
Mohamed

Für Benutzer, die mit einem ähnlichen Problem konfrontiert sind ... Ich habe mit der @Federico-Lösung immer noch keinen Erfolg versucht. Es gab eine weitere Option "Leer", um zu löschen.

Also habe ich zuerst den Eimer geleert und dann versucht zu löschen, es hat funktioniert.

0
karthick