Damit Objekte nach einem festgelegten Zeitraum automatisch gelöscht werden, können Lifecycle-Policies genutzt werden. Genauere Informationen über Lifecycle-Policies findest du 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 du S3cmd verwendest, erstelle eine XML-Datei und nutze die offizielle S3cmd-Dokumentation.
-
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/ausgesetzt). NoncurrentVersionExpiration Beachte, dass unser Object Storage hierfür ausschließlich die Option NoncurrentDaysunterstü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 du nur einzelne Regeln löschen möchtest, nutze den unteren Befehl, um die aktuellen Regeln in
lifecycle.jsonzu speichern. Bearbeite die Regeln und wende die neue Lifecycle-Konfiguration wie in Schritt 2 erklärt auf deinen Bucket an.aws s3api get-bucket-lifecycle-configuration --bucket <bucket_name> --output json > lifecycle.json
-
Solange die Lifecycle-Regeln angewendet sind, sollten deine Objekte automatisch gelöscht werden.
Nächste Schritte: