Erstellen einer S3-Lebenszykluskonfiguration
Sie können eine S3-Lebenszykluskonfiguration erstellen, um zu steuern, wann bestimmte Objekte aus dem StorageGRID System gelöscht werden.
Das einfache Beispiel in diesem Abschnitt veranschaulicht, wie eine S3-Lebenszykluskonfiguration steuern kann, wann bestimmte Objekte aus bestimmten S3-Buckets gelöscht werden (ablaufen). Das Beispiel in diesem Abschnitt dient nur zur Veranschaulichung. Ausführliche Informationen zum Erstellen von S3-Lebenszykluskonfigurationen finden Sie unter "Amazon Simple Storage Service-Benutzerhandbuch: Objekt-Lebenszyklusverwaltung" . Beachten Sie, dass StorageGRID nur Ablaufaktionen unterstützt, keine Übergangsaktionen.
Was ist eine Lebenszykluskonfiguration?
Eine Lebenszykluskonfiguration ist ein Satz von Regeln, die auf die Objekte in bestimmten S3-Buckets angewendet werden. Jede Regel gibt an, welche Objekte betroffen sind und wann diese Objekte ablaufen (an einem bestimmten Datum oder nach einer bestimmten Anzahl von Tagen).
StorageGRID unterstützt bis zu 1.000 Lebenszyklusregeln in einer Lebenszykluskonfiguration. Jede Regel kann die folgenden XML-Elemente enthalten:
-
Ablauf: Löschen Sie ein Objekt, wenn ein bestimmtes Datum erreicht ist oder wenn eine bestimmte Anzahl von Tagen ab dem Zeitpunkt der Aufnahme des Objekts abgelaufen ist.
-
NoncurrentVersionExpiration: Löschen Sie ein Objekt, wenn eine angegebene Anzahl von Tagen erreicht ist, beginnend mit dem Zeitpunkt, an dem das Objekt nicht mehr aktuell ist.
-
Filter (Präfix, Tag)
-
Status
-
AUSWEIS
Jedes Objekt folgt den Aufbewahrungseinstellungen entweder eines S3-Bucket-Lebenszyklus oder einer ILM-Richtlinie. Wenn ein S3-Bucket-Lebenszyklus konfiguriert ist, überschreiben die Aktionen zum Ablauf des Lebenszyklus die ILM-Richtlinie für Objekte, die dem Bucket-Lebenszyklusfilter entsprechen. Objekte, die nicht dem Bucket-Lebenszyklusfilter entsprechen, verwenden die Aufbewahrungseinstellungen der ILM-Richtlinie. Wenn ein Objekt einem Bucket-Lebenszyklusfilter entspricht und keine Ablaufaktionen explizit angegeben sind, werden die Aufbewahrungseinstellungen der ILM-Richtlinie nicht verwendet und es wird davon ausgegangen, dass Objektversionen für immer aufbewahrt werden. Sehen "Beispielprioritäten für den S3-Bucket-Lebenszyklus und die ILM-Richtlinie" .
Dies kann dazu führen, dass ein Objekt aus dem Raster entfernt wird, obwohl die Platzierungsanweisungen in einer ILM-Regel weiterhin für das Objekt gelten. Oder ein Objekt kann auf dem Raster verbleiben, auch wenn alle ILM-Platzierungsanweisungen für das Objekt abgelaufen sind. Weitere Informationen finden Sie unter "Funktionsweise von ILM während der gesamten Lebensdauer eines Objekts" .
|
Die Bucket-Lebenszykluskonfiguration kann mit Buckets verwendet werden, bei denen S3 Object Lock aktiviert ist. Für ältere konforme Buckets wird die Bucket-Lebenszykluskonfiguration jedoch nicht unterstützt. |
StorageGRID unterstützt die Verwendung der folgenden Bucket-Operationen zur Verwaltung von Lebenszykluskonfigurationen:
-
DeleteBucketLifecycle
-
GetBucketLifecycleConfiguration
-
PutBucketLifecycleConfiguration
Lebenszykluskonfiguration erstellen
Als ersten Schritt beim Erstellen einer Lebenszykluskonfiguration erstellen Sie eine JSON-Datei, die eine oder mehrere Regeln enthält. Diese JSON-Datei enthält beispielsweise die folgenden drei Regeln:
-
Regel 1 gilt nur für Objekte, die dem Präfix entsprechen
category1
/ und die haben einekey2
Wert vontag2
. DerExpiration
Der Parameter gibt an, dass Objekte, die dem Filter entsprechen, am 22. August 2020 um Mitternacht ablaufen. -
Regel 2 gilt nur für Objekte, die dem Präfix entsprechen
category2
/. DerExpiration
Der Parameter gibt an, dass Objekte, die dem Filter entsprechen, 100 Tage nach ihrer Aufnahme ablaufen.Regeln, die eine Anzahl von Tagen angeben, beziehen sich auf den Zeitpunkt der Aufnahme des Objekts. Wenn das aktuelle Datum das Aufnahmedatum plus die Anzahl der Tage überschreitet, werden einige Objekte möglicherweise aus dem Bucket entfernt, sobald die Lebenszykluskonfiguration angewendet wird. -
Regel 3 gilt nur für Objekte, die dem Präfix entsprechen
category3
/. DerExpiration
Der Parameter gibt an, dass alle nicht aktuellen Versionen übereinstimmender Objekte 50 Tage, nachdem sie nicht mehr aktuell sind, ablaufen.
{ "Rules": [ { "ID": "rule1", "Filter": { "And": { "Prefix": "category1/", "Tags": [ { "Key": "key2", "Value": "tag2" } ] } }, "Expiration": { "Date": "2020-08-22T00:00:00Z" }, "Status": "Enabled" }, { "ID": "rule2", "Filter": { "Prefix": "category2/" }, "Expiration": { "Days": 100 }, "Status": "Enabled" }, { "ID": "rule3", "Filter": { "Prefix": "category3/" }, "NoncurrentVersionExpiration": { "NoncurrentDays": 50 }, "Status": "Enabled" } ] }
Lebenszykluskonfiguration auf Bucket anwenden
Nachdem Sie die Lebenszyklus-Konfigurationsdatei erstellt haben, wenden Sie sie auf einen Bucket an, indem Sie eine PutBucketLifecycleConfiguration-Anforderung senden.
Diese Anfrage wendet die Lebenszykluskonfiguration in der Beispieldatei auf Objekte in einem Bucket namens testbucket
.
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
Um zu überprüfen, ob eine Lebenszykluskonfiguration erfolgreich auf den Bucket angewendet wurde, senden Sie eine GetBucketLifecycleConfiguration-Anforderung. Beispiel:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
Eine erfolgreiche Antwort listet die Lebenszykluskonfiguration auf, die Sie gerade angewendet haben.
Überprüfen Sie, ob das Ablaufdatum des Bucket-Lebenszyklus für das Objekt gilt
Sie können beim Ausgeben einer PutObject-, HeadObject- oder GetObject-Anforderung feststellen, ob eine Ablaufregel in der Lebenszykluskonfiguration auf ein bestimmtes Objekt zutrifft. Wenn eine Regel zutrifft, enthält die Antwort eine Expiration
Parameter, der angibt, wann das Objekt abläuft und welche Ablaufregel erfüllt wurde.
|
Da der Bucket-Lebenszyklus ILM außer Kraft setzt, expiry-date angezeigt wird das tatsächliche Datum, an dem das Objekt gelöscht wird. Weitere Informationen finden Sie unter "So wird die Objektaufbewahrung bestimmt" .
|
Beispielsweise wurde diese PutObject-Anforderung am 22. Juni 2020 ausgegeben und platziert ein Objekt in der testbucket
Eimer.
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
Die Erfolgsantwort gibt an, dass das Objekt in 100 Tagen (01. Oktober 2020) abläuft und dass es Regel 2 der Lebenszykluskonfiguration entspricht.
{ *"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"", "ETag": "\"9762f8a803bc34f5340579d4446076f7\"" }
Beispielsweise wurde diese HeadObject-Anforderung verwendet, um Metadaten für dasselbe Objekt im Testbucket-Bucket abzurufen.
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
Die Erfolgsantwort enthält die Metadaten des Objekts und gibt an, dass das Objekt in 100 Tagen abläuft und Regel 2 entspricht.
{ "AcceptRanges": "bytes", *"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"", "LastModified": "2020-06-23T09:07:48+00:00", "ContentLength": 921, "ETag": "\"9762f8a803bc34f5340579d4446076f7\"" "ContentType": "binary/octet-stream", "Metadata": {} }
|
Für Buckets mit aktivierter Versionierung gilt: x-amz-expiration Der Antwortheader gilt nur für aktuelle Versionen von Objekten.
|