Mit der Objektversionsverwaltung werden gelöschte Objekte als versionierte, nicht aktuelle Objekte beibehalten, die in Ihrem Bucket zugänglich bleiben, bis sie explizit entfernt werden. Diese Funktion wird verwendet, um Änderungen an Objekten zu verfolgen und die Wiederherstellung bestimmter Versionen eines Objekts zu ermöglichen. Auf dieser Seite werden die Funktion und die verfügbaren Optionen näher erklärt.
Wir empfehlen das vorläufige Löschen anstelle der Objektversionsverwaltung, um einen dauerhaften Datenverlust durch versehentliches oder böswilliges Löschen zu verhindern. Weitere Informationen zur Verwendung des vorläufigen Löschens und der Objektversionsverwaltung finden Sie unter Hinweise.
Einführung
Sie aktivieren die Objektversionsverwaltung für einen Bucket. Nach der Aktivierung:
Jedes Mal, wenn Sie ein Live-Objekt ersetzen oder löschen, behält Cloud Storage eine nicht aktuelle Objektversion bei, sofern Sie keine Generationsnummer der Live-Version angeben.
Nicht aktuelle Versionen behalten den Namen des Objekts bei, werden jedoch durch ihre Generationsnummer eindeutig identifiziert.
Nicht aktuelle Versionen werden nur in Anfragen angezeigt, die explizit ihre Aufnahme anfordern.
Sie löschen eine nicht aktuelle Version eines Objekts, indem Sie die Generationsnummer in die Löschanfrage aufnehmen oder die Verwaltung des Objektlebenszyklus verwenden.
Wenn Sie in einem Bucket mit aktiviertem vorläufigem Löschen ein nicht aktuelles Objekt löschen, ändert Cloud Storage seinen Status in „vorläufig gelöscht“. Ein vorläufig gelöschtes Objekt wird nach Ablauf der Aufbewahrungsdauer für das vorläufige Löschen endgültig gelöscht.
Nicht aktuelle Versionen von Objekten existieren unabhängig von einer Live-Version.
Wenn Sie die Objektversionsverwaltung deaktivieren, gilt Folgendes:
Der Bucket nimmt keine neuen nicht aktuellen Versionen von Objekten mehr an.
Objektversionen, die bereits im Bucket vorhanden sind, sind davon nicht betroffen.
Hinweise
Achtung: Sie können grundsätzlich beliebig viele Objektversionen erstellen. Jede nicht aktuelle Version eines Objekts wird zum gleichen Preis in Rechnung gestellt wie jenem, der galt, als sie live war.
Gebühren für vorzeitiges Löschen fallen nur an, wenn eine Objektversion aus dem Bucket entfernt wird, und nicht dann, wenn die Version nicht mehr aktuell ist. Die Speicherdauer für eine aus einem Bucket entfernte Version basiert auf dem Zeitpunkt, zu dem sie dem Bucket hinzugefügt wurde, nicht auf dem Zeitpunkt, zu dem sie nicht mehr aktuell ist.
Wenn Sie die Versionsverwaltung aktivieren, sollten Sie auch die Verwaltung des Objektlebenszyklus nutzen, um ältere Versionen eines Objekts nach einer bestimmten Zeit zu entfernen oder wenn neuere Versionen nicht mehr aktuell sind. Eine mögliche Einrichtung finden Sie im Beispiel für die Lebenszykluskonfiguration beim Löschen von Objekten.
Beachten Sie die folgenden Punkte, um zu ermitteln, ob Sie die Objektversionsverwaltung oder das vorläufige Löschen für Ihren Bucket aktivieren:
Wenn Sie verhindern möchten, dass ein dauerhafter Datenverlust durch versehentliches oder böswilliges Löschen entsteht, verwenden Sie das vorläufige Löschen anstelle der Objektversionsverwaltung. Das vorläufige Löschen bietet Schutz auf Bucket-Ebene, da alle kürzlich gelöschten Live-Objekte oder nicht aktuellen Objekte beibehalten werden. Es schützt auch vor Löschungen auf Bucket-Ebene.
Wenn Sie bestimmte Abrechnungsanforderungen haben und Regeln für die Verwaltung des Objektlebenszyklus so konfiguriert haben, dass eine bestimmte Anzahl nicht aktueller Versionen beibehalten wird, verwenden Sie die Objektversionsverwaltung.
In einem solchen Szenario erhalten Sie nur einen teilweisen Schutz vor versehentlichem Löschen, da die Objektversionsverwaltung nicht vor Ereignissen auf Bucket-Ebene oder unerwünschtem Löschen von nicht aktuellen Objekten schützt.
Nicht aktuelle Objekte sind zugänglich und lesbar, während vorläufig gelöschte Objekte offline beibehalten werden und nicht lesbar sind. Zum Wiederherstellen vorläufig gelöschter Objekte sind bestimmte IAM-Berechtigungen erforderlich, die für die IAM-Rolle „Storage-Administrator“ (
roles/storage.admin) verfügbar sind.Wenn Sie Zugriff auf die zuletzt gelöschten Objekte und ein hohes Niveau von Schutz vor dauerhaften Datenverlusten durch versehentliche und böswillige Löschereignisse wünschen, können Sie die Objektversionsverwaltung und das vorläufige Löschen für denselben Bucket aktivieren. Sie können die Richtlinie für die Verwaltung des Objektlebenszyklus so konfigurieren, dass nicht aktuelle Versionen nach einer bestimmten Anzahl von Tagen automatisch gelöscht werden. Anschließend können Sie durch vorläufiges Löschen eine zusätzliche Schutzebene bereitstellen.
Nicht aktuelle Objektmetadaten
Nicht aktuelle Versionen von Objekten haben eigene Metadaten, die sich von den Metadaten der Live-Version unterscheiden können. Am wichtigsten ist jedoch, dass nicht aktuelle Versionen ihre Access Control Lists behalten und nicht unbedingt dieselben Berechtigungen wie die Live-Version des Objekts haben.
Sowohl Live- als auch nicht aktuelle Versionen haben einen Satz an Metadaten. Dabei verweist nur die neueste Metagenerationsnummer auf die Metadaten. Ältere Metagenerationsnummern können nicht verwendet werden, um auf Metadaten zuzugreifen, die in der Zwischenzeit geändert wurden.
Geben Sie in Ihrer Anfrage die generation des Objekts an, um die Metadaten einer nicht aktuellen Version eines Objekts zu aktualisieren. Sie können die Vorbedingung "metageneration-match" verwenden, um eine sichere Read-Modify-Write-Semantik zu gewährleisten. Diese Vorbedingung bewirkt, dass das Update fehlschlägt, wenn die Metadaten, die Sie aktualisieren möchten, in dem Zeitraum zwischen dem Lesen der Metadaten und dem Senden des Updates geändert wurden.
Beispiel für Objektversionsverwaltung
Anhand des folgenden Beispiels wird gezeigt, was mit der Datei cat.jpg in einem Bucket mit aktivierter Objektversionsverwaltung und vorläufigem Löschen geschieht, wenn Sie die Datei ersetzen, aktualisieren oder löschen.
- Sie laden ein neues Bild hoch.
Wenn Sie
cat.jpgin Cloud Storage hochladen, erhält die Datei je eine Nummer fürgenerationundmetageneration. In diesem Beispiel lautet die Generationsnummer1360887697105000. Da das Objekt neu ist, hat es diemetageneration-Nummer1.cat.jpgerhältgeneration- undmetageneration-Nummern, obwohl die Objektversionsverwaltung nicht aktiviert ist. Sie erhalten diese Zahlen, indem Sie die Objektmetadaten ansehen.- Sie aktivieren die Objektversionsverwaltung.
Sie beschließen nun, die Objektversionsverwaltung für den Bucket zu aktivieren. Dies wirkt sich nicht auf die
generation- undmetageneration-Nummern voncat.jpgaus.- Sie ändern die Metadaten des Bildes.
Sie aktualisieren die Metadaten für
cat.jpgdurch Hinzufügen von benutzerdefinierten Metadaten:color:black. Durch die Aktualisierung der Metadaten erhöht sich dermetageneration-Wert voncat.jpgvon1auf2. Da das Objekt selbst unverändert bleibt, speichert Cloud Storage weiterhin nur eine Version voncat.jpgund diese behält diegeneration-Nummer1360887697105000.- Sie laden eine neue Version des Bildes hoch.
Sie laden eine neue Version von
cat.jpgin den Cloud Storage-Bucket hoch. Dabei versetzt die Objektversionsverwaltung das bestehende Objektcat.jpgin einen nicht aktuellen Zustand. Die nicht aktuelle Version behält die bisherige Speicherklasse und deren Metadaten. Sie wird nur angezeigt, wenn Sie die nicht aktuellen Versionen auflisten. Mit normalen Listenbefehlen lässt sie sich nicht anzeigen. Die nicht aktuelle Version wird jetzt alscat.jpg#1360887697105000bezeichnet.Die neu hochgeladene Datei
cat.jpgwird nun zur Live-Version des Objekts. Diese neuecat.jpg-Datei bekommt ihre eigenegeneration-Nummer, die in diesem Beispiel1360887759327000lautet. Außerdem erhält sie eigene Metadaten und diemetageneration-Nummer1, d. h. sie hat nicht die Metadatencolor:black, sofern Sie sie nicht angeben. Wenn Sie aufcat.jpg,zugreifen oder die Datei ändern, wird mit dieser Version gearbeitet. Sie können alternativ auf diese Version voncat.jpgmithilfe ihrergeneration-Nummer verweisen. In der Google Cloud CLI würden Sie sie zum Beispiel mitcat.jpg#1360887759327000angeben.- Sie löschen die Live-Version des Bildes.
Jetzt löschen Sie
cat.jpg. Damit ist die Version mit der Generierungsnummer1360887759327000nicht mehr aktuell. Jetzt enthält Ihr Bucket zwei nicht aktuelle Versionen voncat.jpg, aber keine Live-Version mehr. Sie können weiterhin mit der jeweiligengeneration-Nummer auf die beiden nicht aktuellen Versionen verweisen, aber wenn Sie versuchen, ohnegeneration-Nummer aufcat.jpgzuzugreifen, schlägt dies fehl.Ebenso wird
cat.jpgbei einer normalen Objektauflistung des Buckets nicht als eines der Objekte in dem Bucket zurückgegeben. Weitere Informationen zum Auflisten nicht aktueller Versionen von Objekten finden Sie unter Nicht aktuelle Objektversionen auflisten.- Sie deaktivieren die Objektversionsverwaltung.
Sie deaktivieren die Objektversionsverwaltung, um zu verhindern, dass Objekte nicht mehr aktuell sind. Vorhandene nicht aktuelle Versionen von Objekten verbleiben in Cloud Storage. Obwohl die Objektversionsverwaltung deaktiviert wurde, bleiben
cat.jpg#1360887697105000undcat.jpg#1360887759327000im Bucket gespeichert, bis Sie sie löschen.- Sie stellen eine der nicht aktuellen Versionen wieder her.
Auch wenn die Objektversionsverwaltung deaktiviert ist, können Sie eine Kopie einer der vorhandenen nicht aktuellen Versionen erstellen, wodurch effektiv die Version wiederhergestellt wird. Anschließend hat Ihr Bucket drei
cat.jpg-Versionen: die zwei nicht aktuellen Versionen und die Live-Version, die aus der Wiederherstellung stammt.- Sie löschen eine der nicht aktuellen Versionen.
Sie können eine nicht aktuelle Version eines Objekts manuell oder über die Verwaltung des Objektlebenszyklus löschen.
Wenn Sie eine nicht aktuelle Version,
cat.jpg#1360887697105000, löschen, wird sie vorläufig gelöscht. Dieses vorläufig gelöschte Objekt wird für die Aufbewahrungsdauer für vorläufiges Löschen beibehalten, die in der Richtlinie für das vorläufige Löschen des Buckets angegeben ist. Nach Ablauf der Aufbewahrungsdauer löscht Cloud Storage die vorläufig gelöschte Version dieses Objekts endgültig.- Sie stellen eine der vorläufig gelöschten Objektversionen wieder her.
Auch wenn die Objektversionsverwaltung deaktiviert ist, können Sie eine vorläufig gelöschte Version eines nicht aktuellen Objekts wiederherstellen. Eine Kopie einer vorläufig gelöschten Version wird als Live-Version mit neuen Objektmetadaten und einem neuen Erstellungsdatum wiederhergestellt. Das ursprüngliche vorläufig gelöschte Objekt verbleibt ebenfalls im Bucket und wird nach Ablauf der Aufbewahrungsdauer für das vorläufige Löschen dauerhaft gelöscht.
Referenz für Objektversionsverwaltung
In dieser Referenztabelle wird gezeigt, was passiert, wenn Sie bestimmte Aktionen mit der Objektversionsverwaltung ausführen.
| Status der Objektversionsverwaltung | Status des vorläufigen Löschens | Aktion | Folge |
|---|---|---|---|
| Deaktiviert | Deaktiviert | ||
dog.png löschen. |
dog.png wird endgültig gelöscht. |
||
Löschen Sie eine nicht aktuelle Version von dog.png, indem Sie seine Generationsnummer angeben.1 |
Die nicht aktuelle Version wird endgültig gelöscht. | ||
Ersetzen Sie dog.png durch eine neue Version. |
Die neue Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird endgültig gelöscht. | ||
Kopieren Sie eine nicht aktuelle Version von dog.png über die Live-Version.1 |
Eine Kopie der nicht aktuellen Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird endgültig gelöscht. | ||
| Deaktiviert | Aktiviert | ||
dog.png löschen. |
dog.png wird vorläufig gelöscht. |
||
Löschen Sie eine nicht aktuelle Version von dog.png, indem Sie seine Generationsnummer angeben.1 |
Die nicht aktuelle Version wird vorläufig gelöscht. | ||
Ersetzen Sie dog.png durch eine neue Version. |
Die neue Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird vorläufig gelöscht. | ||
Kopieren Sie eine nicht aktuelle Version von dog.png über die Live-Version.1 |
Eine Kopie der nicht aktuellen Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird vorläufig gelöscht. | ||
| Aktiviert | Deaktiviert | ||
Löschen Sie die Live-Version von dog.png, ohne die Generationsnummer anzugeben. |
Die Live-Version wird zu einer nicht aktuellen Version und behält dieselbe Generierungsnummer bei. | ||
Löschen Sie die Live-Version von dog.png, indem Sie die Generationsnummer angeben. |
Die Live-Version wird endgültig gelöscht. | ||
Löschen Sie eine aktuelle Version von dog.png, indem Sie seine Generationsnummer angeben. |
Die nicht aktuelle Version wird endgültig gelöscht. | ||
Ersetzen Sie dog.png durch eine neue Version. |
Die neue Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird zu einer nicht aktuellen Version und behält dieselbe Generationsnummer. | ||
Kopieren Sie eine nicht aktuelle Version von dog.png aus der Live-Version. |
Eine Kopie der nicht aktuellen Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird zu einer nicht aktuellen Version und behält dieselbe Generationsnummer. | ||
| Aktiviert | Aktiviert | ||
Löschen Sie die Live-Version von dog.png, ohne die Generationsnummer anzugeben. |
Die Live-Version wird zu einer nicht aktuellen Version und behält dieselbe Generierungsnummer bei. | ||
Löschen Sie die Live-Version von dog.png, indem Sie die Generationsnummer angeben. |
Die Live-Version wird vorläufig gelöscht. | ||
Löschen Sie eine aktuelle Version von dog.png, indem Sie seine Generationsnummer angeben. |
Die nicht aktuelle Version wird vorläufig gelöscht. | ||
Ersetzen Sie dog.png durch eine neue Version. |
Die neue Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird zu einer nicht aktuellen Version und behält dieselbe Generationsnummer. | ||
Kopieren Sie eine nicht aktuelle Version von dog.png aus der Live-Version. |
Eine Kopie der nicht aktuellen Version ersetzt die Live-Version und erhält eine neue Generationsnummer. Die alte Live-Version wird zu einer nicht aktuellen Version und behält dieselbe Generationsnummer. |
1 Eine nicht aktuelle Version ist möglicherweise vorhanden, wenn die Objektversionsverwaltung für den Bucket bereits aktiviert war.
Verhalten bei der Wiederherstellung
Sie können eine nicht aktuelle Objektversion effektiv auf die aktuelle Live-Version zurücksetzen. Eine detaillierte Anleitung hierzu finden Sie unter Nicht aktuelle Objektversionen wiederherstellen.
Wenn Sie dies bei aktivierter Objektversionsverwaltung tun und bereits eine Live-Version des Objekts in Ihrem Bucket vorhanden ist, ersetzt Cloud Storage die vorhandene Live-Version, behält sie aber als neue, nicht aktuelle Version bei. In einem solchen Fall enthält Ihr Bucket anschließend das ersetzte Objekt (jetzt nicht aktuell) und zwei Kopien des zuvor nicht aktuellen Objekts (eine Live-Kopie und eine weiterhin nicht aktuelle Kopie). Für all diese Objekte fallen Speichergebühren an. Um unnötige Kosten zu vermeiden, löschen Sie die nicht aktuelle Version, mit der Sie die aktuelle Live-Kopie erstellt haben, oder konfigurieren Sie die Verwaltung des Objektlebenszyklus so, dass nicht aktuelle Objekte entfernt werden, wenn sie die von Ihnen festgelegten Bedingungen erfüllen.
Nächste Schritte
- Erfahren Sie, wie Sie die Objektversionsverwaltung aktivieren.
- Arbeiten Sie mit nicht aktuellen Objekten.
- Erfahren Sie mehr über die Generation und Metageneration von Objektattributen.
- Erfahren Sie mehr über die Verwaltung des Objektlebenszyklus, mit der Sie Objektversionen automatisch verwalten können.
- Sehen Sie sich ein Beispiel für die Verwaltung des Objektlebenszyklus an, das mit der Objektversionsverwaltung funktioniert.