Versioning

Last change on 2024-12-03 • Created on 2024-10-18 • ID: ST-FDA20

Um Objekte vor versehentlichem Löschen zu schützen, kann Versioning genutzt werden. Genauere Informationen darüber, inwiefern sich Versioning und Object Lock unterscheiden, finden Sie in dem FAQ-Eintrag "Was ist der Unterschied zwischen Versioning und Object Locking?".

Die Befehle unterscheiden sich je nach S3-kompatiblem Tool. Die folgenden Schritte werden mittels Beispielbefehlen für MinIO Client und AWS CLI erklärt.

  1. Versioning aktivieren

    • MinIO Client

      Für den ganzen Bucket:

      mc version enable <alias_name>/<bucket_name>

    • AWS CLI

      Für den ganzen Bucket:

      aws s3api put-bucket-versioning --versioning-configuration Status=Enabled --bucket <bucket_name>

  1. Versioning-Status prüfen

    • MinIO Client

      Bucket-Status:

      mc version info <alias_name>/<bucket_name>

    • AWS CLI

      Bucket-Status:

      aws s3api get-bucket-versioning --bucket <bucket_name>

  1. Alle Versionen listen

    • MinIO Client

      Von allen Objekten im Bucket:

      mc ls --versions <alias_name>/<bucket_name>

      Von einem bestimmten Objekt:

      mc ls --versions <alias_name>/<bucket_name>/<object_name>
      mc stat --versions <alias_name>/<bucket_name>/<object_name>

    • AWS CLI

      Von allen Objekten im Bucket:

      aws s3api list-object-versions --bucket <bucket_name>

      Von einem bestimmten Objekt:

      aws s3api list-object-versions --bucket <bucket_name> --key <object_name>

  1. Eine bestimmte Version von einem Objekt öffnen oder herunterladen

    Wenn keine Versions ID angegeben wird, wird automatisch die Version angezeigt, die zuletzt hinzugefügt wurde (die aktuellste Version).

    • MinIO Client

      mc cat --version-id <version_id> <alias_name>/<bucket_name>/<object_name>
      mc cp --version-id <version_id> <alias_name>/<bucket_name>/<object_name> <local_target_location>

    • AWS CLI

      aws s3api get-object --version-id <version_id> --bucket <bucket_name> --key <object_name> <local_target_location>

  1. Eine oder alle Versionen eines Objektes löschen

    • MinIO Client

      Alle Versionen:

      OBJECT="<alias_name>/<bucket_name>/<object_name>"
      for key in $(mc ls --versions "$OBJECT" | awk '{print $6}'); do
        mc rm --version-id "$key" "$OBJECT"; done

      Eine bestimmte Version:

      mc rm --version-id <version_id> <alias_name>/<bucket_name>/<object_name>

    • AWS CLI

      Alle Versionen:

      BUCKET="<bucket_name>"
      OBJECT="<object_name>"
      for version in $(aws s3api list-object-versions --bucket "$BUCKET" --prefix $OBJECT --query 'Versions[].VersionId' --output text); do
        aws s3api delete-object --version-id "$version" --bucket "$BUCKET" --key $OBJECT; done

      Eine bestimmte Version:

      aws s3api delete-object --version-id <version_id> --bucket <bucket_name> --key <object_name>

  1. Versioning deaktivieren

    • MinIO Client

      Für den ganzen Bucket:

      mc version suspend <alias_name>/<bucket_name>
    • AWS CLI

      Für den ganzen Bucket:

      aws s3api put-bucket-versioning --versioning-configuration Status=Suspended --bucket <bucket_name>

Nächste Schritte: