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?".
Nachdem Sie Versioning aktiviert haben, können Sie Lifecycle-Policies anwenden, mit denen alte Versionen nach einem festgelegten Zeitraum automatisch gelöscht werden. Dies verhindert, dass der Speicher (und somit die Kosten) unbemerkt erheblich ansteigt.
Die Befehle unterscheiden sich je nach S3-kompatiblem Tool. Die folgenden Schritte werden mittels Beispielbefehlen für MinIO Client und AWS CLI erklärt.
-
Versioning aktivieren
-
Für den ganzen Bucket:
mc version enable <alias_name>/<bucket_name>
-
Für den ganzen Bucket:
aws s3api put-bucket-versioning --versioning-configuration Status=Enabled --bucket <bucket_name>
-
-
Versioning-Status prüfen
-
Bucket-Status:
mc version info <alias_name>/<bucket_name>
-
Bucket-Status:
aws s3api get-bucket-versioning --bucket <bucket_name>
-
-
Alle Versionen listen
-
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>
-
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>
-
-
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 s3api get-object --version-id <version_id> --bucket <bucket_name> --key <object_name> <local_target_location>
-
-
Eine oder alle Versionen eines Objektes löschen
-
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>
-
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>
-
-
Versioning deaktivieren
-
Für den ganzen Bucket:
mc version suspend <alias_name>/<bucket_name>
-
Für den ganzen Bucket:
aws s3api put-bucket-versioning --versioning-configuration Status=Suspended --bucket <bucket_name>
-
Nächste Schritte: