Lifecycle-Policies anwenden

Last change on 2025-04-08 • Created on 2024-10-28 • ID: ST-B7A33

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.

  1. 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.

  1. Lifecycle-Konfiguration auf einen Bucket anwenden:

    • MinIO Client

      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 CLI

      aws s3api put-bucket-lifecycle-configuration --bucket <bucket_name> --lifecycle-configuration  file://expiry.json

  1. Lifecycle-Regeln anzeigen lassen:

    • MinIO Client

      mc ilm rule ls <alias_name>/<bucket_name>

    • AWS CLI

      aws s3api get-bucket-lifecycle-configuration --bucket <bucket_name>

  1. Lifecycle-Regeln löschen:

    • MinIO Client

      mc ilm rule rm --id "expiry" <alias_name>/<bucket_name>
      mc ilm rule rm --all --force <alias_name>/<bucket_name>

    • AWS CLI

      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: