Operationen auf Buckets
Das StorageGRID System unterstützt für jedes S3-Mandantenkonto maximal 1,000 Buckets.
Einschränkungen für Bucket-Namen folgen den regionalen Beschränkungen für AWS US Standard. Sie sollten sie jedoch noch weiter auf DNS-Namenskonventionen beschränken, um Anfragen im Stil von virtuellen S3-Hosted-Style zu unterstützen.
Operationen „GET Bucket“ (Listenobjekte) und „GET Bucket-Versionen“ unterstützen die StorageGRID-Konsistenzkontrollen.
Sie können überprüfen, ob für einzelne Buckets Updates zur letzten Zugriffszeit aktiviert oder deaktiviert wurden.
In der folgenden Tabelle wird beschrieben, wie StorageGRID S3-REST-API-Bucket-Operationen implementiert Um einen dieser Vorgänge durchzuführen, müssen die erforderlichen Anmeldedaten für den Zugriff für das Konto bereitgestellt werden.
Betrieb | Implementierung |
---|---|
Bucket LÖSCHEN |
Wird mit dem gesamten Amazon S3-REST-API-Verhalten implementiert. |
Bucket-Cors LÖSCHEN |
Durch diesen Vorgang wird die CORS-Konfiguration für den Bucket gelöscht. |
Bucket-Verschlüsselung LÖSCHEN |
Bei diesem Vorgang wird die Standardverschlüsselung aus dem Bucket gelöscht. Vorhandene verschlüsselte Objekte bleiben verschlüsselt, neue dem Bucket hinzugefügte Objekte werden jedoch nicht verschlüsselt. |
Bucket-Lebenszyklus LÖSCHEN |
Bei diesem Vorgang wird die Lebenszyklukonfiguration aus dem Bucket gelöscht. |
Bucket-Richtlinie LÖSCHEN |
Bei diesem Vorgang wird die Richtlinie gelöscht, die dem Bucket zugeordnet ist. |
Bucket-Replizierung LÖSCHEN |
Bei diesem Vorgang wird die an den Bucket angeschlossene Replizierungskonfiguration gelöscht. |
Bucket-Tagging LÖSCHEN |
Dieser Vorgang verwendet das |
Get Bucket (Listenobjekte), Version 1 und Version 2 |
Dieser Vorgang gibt einige oder alle (bis zu 1,000) Objekte in einem Bucket zurück. Die Speicherklasse für Objekte kann einen von zwei Werten haben, auch wenn das Objekt mit aufgenommen wurde
Wenn der Bucket eine große Anzahl von gelöschten Schlüsseln enthält, die dasselbe Präfix haben, kann die Antwort einige enthalten |
Bucket-acl ABRUFEN |
Dieser Vorgang gibt eine positive Antwort und die ID, DisplayName und die Erlaubnis des Bucket-Besitzers zurück, was darauf hinweist, dass der Besitzer vollen Zugriff auf den Bucket hat. |
Bucket-Cors ABRUFEN |
Dieser Vorgang gibt den zurück |
Get Bucket-Verschlüsselung |
Dieser Vorgang gibt die Standardverschlüsselungskonfiguration für den Bucket zurück. |
BUCKET-Lebenszyklus ABRUFEN |
Dieser Vorgang gibt die Lifecycle-Konfiguration für den Bucket zurück. |
Bucket-Speicherort ABRUFEN |
Dieser Vorgang gibt die Region zurück, die mit dem festgelegt wurde |
Bucket-Benachrichtigung ABRUFEN |
Dieser Vorgang gibt die Benachrichtigungskonfiguration an den Bucket zurück. |
Get Bucket-Objektversionen |
Mit LESEZUGRIFF auf einen Bucket erfolgt dieser Vorgang mit dem |
Get Bucket-Richtlinie |
Dieser Vorgang gibt die Richtlinie zurück, die dem Bucket zugeordnet ist. |
GET Bucket-Replizierung |
Dieser Vorgang gibt die am Bucket angeschlossene Replizierungskonfiguration zurück. |
Get Bucket-Tagging |
Dieser Vorgang verwendet das |
Get Bucket-Versionierung |
Diese Implementierung verwendet das |
Konfiguration der Objektsperre ABRUFEN |
Dieser Vorgang legt fest, ob die S3-Objektsperre für einen Bucket aktiviert ist. "Verwenden der S3-Objektsperre" |
EIMER |
Dieser Vorgang bestimmt, ob ein Bucket vorhanden ist und Sie über die Berechtigung zum Zugriff auf ihn verfügen. |
Put Bucket |
Durch diesen Vorgang wird ein neuer Bucket erstellt. Mit dem Erstellen des Buckets werden Sie zum Bucket-Eigentümer.
|
Bucket-Cors EINGEBEN |
Mit diesem Vorgang wird die CORS-Konfiguration für einen Bucket festgelegt, damit der Bucket die Cross-Origin-Requests bedienen kann. CORS (Cross-Origin Resource Sharing) ist ein Sicherheitsmechanismus, mit dem Client-Webanwendungen in einer Domäne auf Ressourcen in einer anderen Domäne zugreifen können. Angenommen, Sie verwenden einen S3-Bucket mit dem Namen |
Bucket-Verschlüsselung |
Dieser Vorgang legt den Standardverschlüsselungsstatus eines vorhandenen Buckets fest. Bei aktivierter Verschlüsselung auf Bucket-Ebene sind alle neuen dem Bucket hinzugefügten Objekte verschlüsselt.StorageGRID unterstützt serverseitige Verschlüsselung mit von StorageGRID gemanagten Schlüsseln. Wenn Sie die Konfigurationsregel für die serverseitige Verschlüsselung angeben, legen Sie die fest Die Standardverschlüsselungskonfiguration von Buckets wird ignoriert, wenn in der Anfrage für das Hochladen von Objekten bereits eine Verschlüsselung angegeben ist (d. h., wenn die Anforderung den umfasst |
PUT Bucket-Lebenszyklus |
Dieser Vorgang erstellt eine neue Lifecycle-Konfiguration für den Bucket oder ersetzt eine vorhandene Lifecycle-Konfiguration. StorageGRID unterstützt in einer Lebenszykluskonfiguration bis zu 1,000 Lebenszyklusregeln. Jede Regel kann die folgenden XML-Elemente enthalten:
StorageGRID bietet folgende Maßnahmen nicht:
Informationen dazu, wie die Aktion zum Ablauf in einem Bucket-Lebenszyklus mit den Anweisungen zur ILM-Platzierung interagiert, finden Sie unter „ Hinweis: Die Konfiguration des Bucket-Lebenszyklus kann für Buckets verwendet werden, für die S3-Objektsperre aktiviert ist. Die Bucket-Lebenszykluskonfiguration wird jedoch für ältere kompatible Buckets nicht unterstützt. |
PUT Bucket-Benachrichtigung |
Mit diesem Vorgang werden Benachrichtigungen für den Bucket mithilfe der im Anfraentext enthaltenen XML-Benachrichtigungskonfiguration konfiguriert. Sie sollten folgende Implementierungsdetails kennen:
|
Bucket-Richtlinie |
Dieser Vorgang legt die Richtlinie fest, die an den Bucket gebunden ist. |
PUT Bucket-Replizierung |
Dieser Vorgang konfiguriert die StorageGRID CloudMirror-Replikation für den Bucket mithilfe der im Anforderungsgremium bereitgestellten Replikationskonfigurations-XML. Für die CloudMirror-Replikation sollten Sie die folgenden Implementierungsdetails beachten:
|
PUT Bucket-Tagging |
Dieser Vorgang verwendet das
|
PUT Bucket-Versionierung |
Diese Implementierung verwendet das
|
"Amazon Web Services (AWS) Dokumentation: Regionsübergreifende Replizierung"
Erstellen einer S3-Lebenszykluskonfiguration
Sie können eine S3-Lebenszyklukonfiguration 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 das Löschen bestimmter Objekte aus bestimmten S3-Buckets kontrollieren kann. Das Beispiel in diesem Abschnitt dient nur zu Illustrationszwecken. Alle Details zum Erstellen von S3-Lebenszykluskonfigurationen finden Sie im Abschnitt zum Lifecycle Management von Objekten im Amazon Simple Storage Service Developer Guide. Beachten Sie, dass StorageGRID nur Aktionen nach Ablauf unterstützt. Es werden keine Aktionen zur Transition unterstützt.
Was für eine Lebenszykluskonfiguration ist
Eine Lifecycle-Konfiguration 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 einigen Tagen).
StorageGRID unterstützt in einer Lebenszykluskonfiguration bis zu 1,000 Lebenszyklusregeln. Jede Regel kann die folgenden XML-Elemente enthalten:
-
Ablauf: Löschen eines Objekts, wenn ein bestimmtes Datum erreicht wird oder wenn eine bestimmte Anzahl von Tagen erreicht wird, beginnend mit dem Zeitpunkt der Aufnahme des Objekts.
-
NoncurrentVersionExpiration: Löschen Sie ein Objekt, wenn eine bestimmte Anzahl von Tagen erreicht wird, beginnend ab dem Zeitpunkt, an dem das Objekt nicht mehr aktuell wurde.
-
Filter (Präfix, Tag)
-
Status
-
ID
Wenn Sie eine Lifecycle-Konfiguration auf einen Bucket anwenden, überschreiben die Lifecycle-Einstellungen für den Bucket immer die StorageGRID-ILM-Einstellungen. StorageGRID verwendet die Verfallseinstellungen für den Bucket und nicht ILM, um zu bestimmen, ob bestimmte Objekte gelöscht oder aufbewahrt werden sollen.
Aus diesem Grund kann ein Objekt aus dem Grid entfernt werden, obwohl die Speicheranweisungen in einer ILM-Regel noch auf das Objekt gelten. Alternativ kann ein Objekt auch dann im Grid aufbewahrt werden, wenn eine ILM-Platzierungsanleitung für das Objekt abgelaufen ist. Weitere Informationen finden Sie unter „Funktionsweise von ILM während der gesamten Lebensdauer eines Objekts
“ in den Anweisungen zum Verwalten von Objekten mit Information Lifecycle Management.
Die Bucket-Lifecycle-Konfiguration kann für Buckets verwendet werden, für die S3-Objektsperre aktiviert ist. Die Bucket-Lifecycle-Konfiguration wird jedoch für ältere Buckets, die Compliance verwenden, nicht unterstützt. |
StorageGRID unterstützt den Einsatz der folgenden Bucket-Operationen zum Management der Lebenszykluskonfigurationen:
-
Bucket-Lebenszyklus LÖSCHEN
-
BUCKET-Lebenszyklus ABRUFEN
-
PUT Bucket-Lebenszyklus
Erstellen der Lebenszykluskonfiguration
Als erster Schritt beim Erstellen einer Lebenszykluskonfiguration erstellen Sie eine JSON-Datei mit einem oder mehreren Regeln. Diese JSON-Datei enthält beispielsweise drei Regeln:
-
Regel 1 gilt nur für Objekte, die mit dem Präfix übereinstimmen
category1
/ Und das hat einkey2
Der Wert vontag2
. DerExpiration
Der Parameter gibt an, dass Objekte, die dem Filter entsprechen, um Mitternacht am 22. August 2020 ablaufen. -
Regel 2 gilt nur für Objekte, die mit dem Präfix übereinstimmen
category2
/. DerExpiration
Parameter gibt an, dass Objekte, die dem Filter entsprechen, 100 Tage nach der Aufnahme ablaufen.Regeln, die eine Anzahl von Tagen angeben, sind relativ zu dem Zeitpunkt, an dem das Objekt aufgenommen wurde. 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
Parameter gibt an, dass nicht aktuelle Versionen übereinstimmender Objekte 50 Tage nach deren Nichtstrom 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" } ] }
Anwenden einer Lebenszykluskonfiguration auf einen Bucket
Nachdem Sie die Lifecycle-Konfigurationsdatei erstellt haben, wenden Sie sie durch Ausgabe einer PUT Bucket Lifecycle-Anforderung auf einen Bucket an.
Diese Anforderung wendet die Lebenszykluskonfiguration in der Beispieldatei auf Objekte in einem Bucket mit dem Namen an testbucket
:Eimer
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
Um zu überprüfen, ob eine Lifecycle-Konfiguration erfolgreich auf den Bucket angewendet wurde, geben Sie eine ANFORDERUNG FÜR DEN GET Bucket-Lebenszyklus aus. Beispiel:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
Eine erfolgreiche Antwort zeigt die Konfiguration des Lebenszyklus, die Sie gerade angewendet haben.
Überprüfung, ob der Bucket-Lebenszyklus für ein Objekt gilt
Sie können feststellen, ob eine Ablaufregel in der Lebenszykluskonfiguration auf ein bestimmtes Objekt angewendet wird, wenn Sie eine PUT-Objekt-, HEAD-Objekt- oder GET-Objektanforderung ausgeben. Wenn eine Regel zutrifft, enthält die Antwort ein Expiration
Parameter, der angibt, wann das Objekt abläuft und welche Ablaufregel übereinstimmt.
Da der Bucket-Lebenszyklus ILM überschreibt, wird der expiry-date Hier wird das tatsächliche Datum angezeigt, an dem das Objekt gelöscht wird. Weitere Informationen finden Sie unter „wie die Aufbewahrung von Objekten bestimmt wird “ in den Anweisungen zur Durchführung der StorageGRID-Administration.
|
Zum Beispiel, diese PUT Objekt Anfrage wurde am 22. Juni 2020 und platziert ein Objekt in der testbucket
Eimer.
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
Die Erfolgsreaktion zeigt an, dass das Objekt in 100 Tagen (01. Oktober 2020) abläuft und dass es mit Regel 2 der Lebenszykluskonfiguration übereinstimmt.
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
Diese HEAD Object-Anfrage wurde beispielsweise verwendet, um Metadaten für dasselbe Objekt im Testbucket zu erhalten.
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
Die Erfolgsreaktion umfasst die Metadaten des Objekts und gibt an, dass das Objekt in 100 Tagen abläuft und dass es mit Regel 2 übereinstimmt.
{
"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": {}
}