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