Damit Objekte nach einem festgelegten Zeitraum automatisch gelöscht werden, können Lifecycle-Policies genutzt werden. Genauere Informationen über Lifecycle-Policies finden Sie in dem FAQ-Eintrag "Was sind Lifecycle-Policies und wie verwende ich sie?".
Die Befehle unterscheiden sich je nach S3-kompatiblem Tool. Die folgenden Schritte werden mittels Beispielbefehlen für MinIO Client und AWS CLI und anhand einer JSON-Datei erklärt. Wenn Sie S3cmd verwenden, erstellen Sie eine XML-Datei und nutzen Sie die offizielle S3cmd-Dokumentation.
Warnung: Lifecycle-Policies funktionieren aktuell NICHT, wenn Versioning ausgesetzt ist. Damit die Lifecycle-Policies wie erwartet funktionieren, darf auf dem Bucket entweder gar kein Versioning verwendet werden oder es muss aktiviert sein.
-
Lifecycle-Konfiguration erstellen, z.B.
expiry.json
:(siehe JSON Syntax)
{ "Rules": [{ "ID": "expiry", "Status": "Enabled", "Prefix": "", "Expiration": { "Days": 90 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 30 }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 10 } }, { "ID": "deletemarker", "Status": "Enabled", "Prefix": "", "Expiration": { "ExpiredObjectDeleteMarker": true } }] }
Mit dieser Konfiguration werden folgende Objekte gelöscht:
Option Beschreibung Expiration: Days 90 Tage nachdem ein Objekt erstellt wurde, wird es entweder dauerhaft gelöscht (kein Versioning) oder eine Löschmarkierung wird erstellt (Versioning aktiviert). NoncurrentVersionExpiration Beachten Sie, dass unser Object Storage hierfür ausschließlich die Option NoncurrentDays
unterstützt.
30 Tage nachdem ein Objekt zur noncurrent Version wurde (von einer neuen Version ersetzt), wird es dauerhaft gelöscht — außer Object Lock ist angewendet.AbortIncompleteMultipartUpload 10 Tage nachdem ein mehrteiliger Upload abgebrochen wurde, werden die übriggebliebenen Objekte automatisch gelöscht. ExpiredObjectDeleteMarker Wenn eine Löschmarkierung als einzige Version eines Objekts übrig ist und alle noncurrent Versionen bereits dauerhaft gelöscht wurden, wird die Löschmarkierung ebenfalls gelöscht.
-
Lifecycle-Konfiguration auf einen Bucket anwenden:
-
Mit dem MinIO Client können Lifecycle-Regeln auch direkt angewendet werden, ohne JSON-Datei.
mc ilm rule import <alias_name>/<bucket_name> < expiry.json
-
aws s3api put-bucket-lifecycle-configuration --bucket <bucket_name> --lifecycle-configuration file://expiry.json
-
-
Lifecycle-Regeln anzeigen lassen:
-
mc ilm rule ls <alias_name>/<bucket_name>
-
aws s3api get-bucket-lifecycle-configuration --bucket <bucket_name>
-
-
Lifecycle-Regeln löschen:
-
mc ilm rule rm --id "expiry" <alias_name>/<bucket_name> mc ilm rule rm --all --force <alias_name>/<bucket_name>
-
Alle Regeln löschen:
aws s3api delete-bucket-lifecycle --bucket <bucket_name>
Wenn Sie nur einzelne Regeln löschen möchten, nutzen Sie den unteren Befehl, um die aktuellen Regeln in
lifecycle.json
zu speichern. Bearbeiten Sie die Regeln und wenden Sie die neue Lifecycle-Konfiguration wie in Schritt 2 erklärt auf Ihren Bucket an.aws s3api get-bucket-lifecycle-configuration --bucket <bucket_name> --output json > lifecycle.json
-
Solange die Lifecycle-Regeln angewendet sind, sollten Ihre Objekte automatisch gelöscht werden.
Nächste Schritte: