2010-07-05 4 views

Antwort

6

Es gibt keine Möglichkeit, S3 anzuweisen, alle Dateien zu löschen, die bestimmte Kriterien erfüllen - Sie müssen jeweils nur einen Schlüssel löschen.

Die meisten Clientbibliotheken bieten eine Möglichkeit zum Filtern und Paginieren, sodass Sie nur die Dateien auflisten, die Sie löschen müssen, und Sie können eine Statusaktualisierung bereitstellen. Für ein Beispiel akzeptiert Boto's bucket listing Präfix als einen der Parameter.

+0

Ja, ich weiß über das Angebot, und mein Code verwendet es Dateien nacheinander zu löschen. Aber dieser Prozess wird langsam, wenn es Tausende und Abertausende von Dateien zu löschen gibt. –

+0

Schließlich habe ich eine Möglichkeit, das Problem zu lösen: Ich muss in meiner Anwendung markieren, dass diese Dateien nicht mehr verwendet werden, und sie im Hintergrund löschen. –

+0

gibt es eine Möglichkeit, das gleiche mit einem Suffix zu tun? –

0

Ich habe fälschlicherweise Logging-Dateien in der gleichen Bucket erstellen und es gibt wie Tonnen von Log-Datei in meinem Eimer. Zum Glück stieß ich auf ein nodejs util node-s3-utils und es spart meinen Tag!

Beispiel Löschen von Dateien mit foo/ Präfix, Erweiterung mit .txt $ s3utils files delete -c ./.s3-credentials.json -p foo/ -r 'foo\/(\w)+\.txt'