web-dev-qa-db-de.com

Verzeichnis kann nicht aus Amazon S3 gelöscht werden

Ich verwende die Weboberfläche von Amazons S3. Wenn ich mit der rechten Maustaste auf einen Ordner X klicke und "Löschen" wähle, scheint X gelöscht zu sein. Wenn ich dann die Schnittstelle aktualisiere, kann X entweder verschwinden oder bleiben; Wenn ich auf "Aktualisieren" klicke, fehlt oder ist der Ordner vorhanden. Ist das ein Fehler oder mache ich etwas falsch? Der Ordner ist noch vorhanden, soweit ich das beurteilen kann; Einer meiner EMR-Jobs beschwert sich darüber, dass der Ausgabeordner X noch vorhanden ist.

24
verve

Ich hatte das gleiche Problem in der AWS-Weboberfläche, nachdem AWS Command Line (CLI) einen "rekursiven" Ordner in einem Bucket gelöscht hatte. Einige Objekte wurden in der Weboberfläche zufällig wieder angezeigt (keine Dateien, sondern "Ordner"). Obwohl ich versucht habe, diese Ordner in der Weboberfläche zu löschen, waren sie immer noch da (Die Benutzeroberfläche sagte, dass die Operation erfolgreich war ...)

Lösung, die für mich in der AWS-Weboberfläche funktioniert hat: Klicken Sie mit der rechten Maustaste auf den Ordner -> CUT und PASTE in einen anderen Ordner. Hat super funktioniert und dann den neuen Ordner gelöscht. Weg!

Versuchte dasselbe wie Kristoffers answer , aber CUT/PASTE in einen anderen Ordner machte den neuen Ordner nicht löschbar.

Weiteres Hacken: Erstellen Sie einen neuen temporären Bucket. SCHNEIDEN/PASTE den Ordner auf diesen Bucket und lösche den Bucket.

10
Zanon

S3 verwendet eigentlich keine Ordner. Stattdessen werden die Pfadtrennzeichen in Objektpfaden wie Ordner behandelt. Wenn Sie einen Ordner entfernen möchten, muss der gesamte Inhalt des Ordners gelöscht werden.

Wenn das Löschen des gesamten Inhalts verzögert wird, ist der Ordner möglicherweise weiterhin vorhanden.

8
datasage

Seit März 2017 hat sich die Benutzeroberfläche der AWS Console geändert und Sie können den in meinem alten Beitrag beschriebenen "Versionierungsmodus" nicht mehr aufrufen.

Es scheint jetzt, dass Ordner mit versionierten Dateien ohne Einschränkungen frei gelöscht werden können.

Wenn dies nicht der Fall ist, bitte einen Kommentar hinterlassen, damit ich diesen Beitrag korrigieren kann.


Vorherige Version von AWS Console

Wenn Sie die AWS Management Console verwenden und die Versionierung vonAUFeingestellt ist, müssen Sie sich im 'Versionsmodus' befinden, um den Ordner zu löschen. Sie gelangen in den "Versionierungsmodus", indem Sie oben auf der Seite gehen und neben "Versions:" die Schaltfläche Show auswählen. Dann können Sie mit der rechten Maustaste fortfahren und Ihren Ordner löschen .. _. Hoffen Sie, dass dies jemandem hilft.

6
Ian Newland

Versuchte verschiedene Alternativen aus dem Webinterface zu löschen, um einen Ordner mit Unterordnern ohne Erfolg zu löschen . Ich hatte eine Installation des S3-Browsers und versuchte es dann aus dem S3-Browser-Interface.

3

Ich glaube, ich sehe ein ähnliches Verhalten. In meinem Eimer ist die Versionierung aktiviert. Wenn Sie versuchen, das Verzeichnis/Verzeichnis innerhalb des Buckets über die AWS-Web-UI-Konsole zu "löschen", führt dies selbst bei leerem Ordner/Verzeichnis innerhalb des Buckets nicht dazu, dass es tatsächlich entfernt wird. Ich gehe davon aus, dass die "gelöschten" Versionen der Dateien in diesem Pfad noch vorhanden sind (aber in der Webkonsole nicht sichtbar sind). Daher ist der Bucket nicht wirklich leer und wird nicht wirklich gelöscht. Sie müssen möglicherweise über die CLI-Tools prüfen, ob vorhandene gelöschte Versionen von Dateien in diesem Ordner/Verzeichnis vorhanden sind (aber in der Webkonsole nicht sichtbar sind), die Dateien dauerhaft löschen und dann versuchen, den Ordner/das Verzeichnis in Ihrem Bucket zu entfernen.

2
Mike Atlas

Ich habe das gleiche Problem, dass ich einen S3-Bucket nicht löschen kann, mit der Meldung "Beim Aufrufen der DeleteBucket-Operation ist ein Fehler aufgetreten (AccessDenied): Zugriff verweigert"

Nach einiger Zeit lösche ich die Bucket-Richtlinie im Tab "Erlaubnis" -Schaltfläche "Bucket-Policy" und es funktionierte wie ein Zauber mit:

aws s3 rb s3: //elasticbeanstalk-us-west-..../ --force

Ich hoffe diese Hilfe! Ist eine andere Option Pablo

0
Pablo Ezequiel

Ich hatte das gleiche Problem und hatte keinen Zugriff auf die Amazon-Konsole, aber ich konnte es mit diesem Java-Code löschen 

    AmazonS3Client amazonS3Client = new AmazonS3Client(basicAWSCredentials);
    ObjectListing objectListing = amazonS3Client.listObjects("bucketName", "prefix");
    DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest("bucketName");
    List<DeleteObjectsRequest.KeyVersion> keysToDelete = new ArrayList<>();
    objectListing.getObjectSummaries().forEach(s3ObjectSummary -> {
        keysToDelete.add(new DeleteObjectsRequest.KeyVersion(s3ObjectSummary.getKey()));
    });
    deleteObjectsRequest.setKeys(keysToDelete);
    amazonS3Client.deleteObjects(deleteObjectsRequest);

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-Java-sdk</artifactId>
        <version>1.7.4</version>
    </dependency>
0
Anis Smail