Arbeiten mit Objekt-Metadaten
Sie können Objekt-Metadaten in Amazon S3 zum Zeitpunkt des Hochladens des Objekts festlegen. Objekt-Metadaten bestehen aus Name/Wert-Paaren. Nachdem Sie das Objekt hochgeladen haben, können Sie Objekt-Metadaten nicht mehr ändern. Die einzige Methode, wie Sie Objekt-Metadaten ändern können, ist es, eine Kopie des Objekts anzulegen und die Metadaten festzulegen.
Wenn Sie ein Objekt erstellen, geben Sie auch den Schlüsselnamen an, der das Objekt in dem Bucket eindeutig identifiziert. Der Objektschlüssel (oder Schlüsselname) identifiziert das Objekt in einem Amazon-S3-Bucket eindeutig. Weitere Informationen finden Sie unter Erstellen von Objektschlüsselnamen.
Es gibt zweierlei Arten von Metadaten in Amazon S3: systemdefinierte und benutzerdefinierte Metadaten. In den folgenden Abschnitten finden Sie weitere Informationen zu systemdefinierten und benutzerdefinierten Metadaten. Weitere Informationen zum Bearbeiten von Metadaten mit der Amazon-S3-Konsole finden Sie unter Bearbeiten von Objektmetadaten in der Amazon-S3-Konsole.
Systemdefinierte Objektmetadaten
Amazon S3 verwaltet für jedes in einem Bucket gespeicherte Objekt einen Satz Systemmetadaten. Amazon S3 verarbeitet diese Systemmetadaten nach Bedarf. Beispielsweise verwaltet Amazon S3 das Erstellungsdatum eines Objekts und seine Größe als Metadaten und verwendet dies Information für die Objektverwaltung.
Es gibt zwei Kategorien von Systemmetadaten:
-
Metadaten wie beispielsweise das Erstellungsdatum eines werden vom System gesteuert, und nur Amazon S3 kann den Wert ändern.
-
Andere Systemmetadaten, wie beispielsweise die für das Objekt konfigurierte Speicherklasse, und ob für das Objekt eine serverseitige Verschlüsselung aktiviert ist, sind Beispiele für Metadaten, deren Werte Sie steuern können. Wenn Ihr Bucket als Website konfiguriert ist, wollen Sie eine Seite möglicherweise irgendwann auf eine andere Seite oder zu einer externen URL umleiten. In diesem Fall ist eine Webseite ein Objekt in Ihrem Bucket. Amazon S3 speichert den Wert für die Seitenumleitung als Systemmetadaten, deren Wert Sie steuern können.
Wenn Sie Objekte erstellen, können Sie Werte dieser Systemmetadaten konfigurieren oder sie nach Bedarf aktualisieren. Weitere Informationen über Speicherklassen finden Sie unter Verwenden von Amazon-S3-Speicherklassen.
Amazon S3 verwendet AWS KMS-Schlüssel, um Ihre Amazon-S3-Objekte zu verschlüsseln. AWS KMS verschlüsselt nur die Objektdaten. Die Prüfsumme wird zusammen mit dem angegebenen Algorithmus als Teil der Metadaten des Objekts gespeichert. Wenn für das Objekt eine serverseitige Verschlüsselung angefordert wird, wird die Prüfsumme in verschlüsselter Form gespeichert. Weitere Informationen zur serverseitigen Verschlüsselung finden Sie unter Datenschutz durch Verschlüsselung.
Der PUT-Anforderungs-Header ist auf eine Größe von 8 KB begrenzt. Innerhalb des PUT-Anforderungsheaders sind die systemdefinierten Metadaten auf eine Größe von 2 KB begrenzt. Die Größe der systemdefinierten Metadaten wird anhand der Summe der Byteanzahl der US-ASCII-Codierung jedes Schlüssels und Werts gemessen.
Die folgenden Tabelle enthält eine Liste der vom System definierten Metadaten, und gibt an, ob Sie sie aktualisieren können.
Name | Beschreibung | Kann der Benutzer den Wert ändern? |
---|---|---|
Datum | Aktuelles Datum und Uhrzeit. | Nein |
Cache-Control | Ein allgemeines Header-Feld zum Angeben von Caching-Richtlinien. | Ja |
Content-Disposition | Darstellungsinformationen zum Objekt. | Ja |
Content-Length | Objektgröße in Bytes. | Nein |
Content-Type | Objekttyp. | Ja |
Letzte Änderung |
Datum, zu dem das Objekt erstellt wurde, oder das letzte Änderungsdatum, je nachdem, welcher Wert der neueste ist. |
Nein |
ETag | Repräsentiert eine bestimmte Version eines Objekts. Für Objekte, die nicht als mehrteiliger Upload hochgeladen werden und entweder unverschlüsselt oder durch serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) verschlüsselt sind, ist der ETag ein MD5-Digest der Daten. | Nein |
x-amz-server-side-encryption | Gibt an, ob für das Objekt die serverseitige Verschlüsselung aktiviert ist und ob diese Verschlüsselung über die von AWS Key Management Service (AWS KMS) oder von Amazon S3 verwalteter Verschlüsselung (SSE-S3) erfolgt. Weitere Informationen finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung. | Ja |
x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, x-amz-checksum-sha256 | Enthält die Prüfsumme oder den Digest des Objekts. Je nach Prüfsummenalgorithmus, den Amazon S3 verwenden soll, wird höchstens jeweils einer dieser Header festgelegt. Weitere Informationen zur Auswahl des Prüfsummenalgorithmus finden Sie unter Überprüfung der Objektintegrität. | Nein |
x-amz-version-id | Objektversion. Wenn Sie Versioning für einen Bucket aktivieren, weist Amazon S3 allen Objekten, die dem Bucket hinzugefügt werden, eine Versions-ID zu. Weitere Informationen finden Sie unter Verwenden der Versioning in S3-Buckets. | Nein |
x-amz-delete-marker | In einem Bucket, für den das Versioning aktiviert ist, gibt dieses Boolesche Kennzeichen an, ob das Objekt eine Löschmarkierung ist. | Nein |
x-amz-storage-class | Speicherklasse, für die Speicherung des Objekts verwendet wird. Weitere Informationen finden Sie unter Verwenden von Amazon-S3-Speicherklassen. | Ja |
x-amz-website-redirect-location | Leitet Anfragen für das jeweilige Objekt auf ein anderes Objekt im selben Bucket oder zu einer externen URL um. Weitere Informationen finden Sie unter (Optional) Konfigurieren einer Webseitenumleitung. Dieser Wert ist für jedes einzelne Objekt eindeutig und wird nicht standardmäßig kopiert. | Ja |
x-amz-server-side-encryption-aws-kms-key-id | Wenn x-amz-server-side-encryption mit dem Wert aws:kms vorhanden ist, wird dadurch die ID des AWS KMS-symmetrischen KMS-Verschlüsselungsschlüssels angegeben, der für das Objekt verwendet wurde. |
Ja |
x-amz-server-side-encryption-customer-algorithm | Gibt an, ob die serverseitige Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) aktiviert ist. Weitere Informationen finden Sie unter Verwenden von serverseitiger Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C). | Ja |
x-amz-tagging | Das Tag-Set für das Objekt. Das Tag-Set muss als URL-Abfrageparameter codiert sein. | Ja |
Benutzerdefinierte Objektmetadaten
Wenn Sie ein Objekt hochladen, können Sie ihm Metadaten zuweisen. Sie geben diese optionalen Informationen als Name-Wert-Paar (Schlüssel-Wert) an, wenn Sie eine PUT- oder POST-Anforderung senden, um das Objekt zu erstellen. Wenn Sie Objekte mit der REST-API hochladen, müssen die optionalen benutzerdefinierten Metadatennamen mit "x-amz-meta-" beginnen, damit sie von den anderen HTTP-Header unterschieden werden können. Wenn Sie das Objekt mit der REST-API abrufen, wird dieses Präfix zurückgegeben. Wenn Sie Objekte mit der SOAP API hochladen, ist das Präfix nicht erforderlich. Wenn Sie das Objekt mit der SOAP API abrufen, wird das Präfix entfernt, unabhängig davon, welche API Sie zum Hochladen des Objekts verwendet haben.
Die SOAP-Unterstützung über HTTP ist veraltet, SOAP steht über HTTPS aber noch zur Verfügung. Neue Amazon-S3-Funktionen werden unter SOAP nicht unterstützt. Wir empfehlen, statt SOAP entweder die REST-API oder die AWS-SDKs zu verwenden.
Wenn Metadaten über die REST-API abgerufen werden, kombiniert Amazon S3 Header, die denselben Namen haben (wobei die Groß-/Kleinschreibung ignoriert wird) in einer durch Kommata getrennten Liste. Wenn einige Metadaten nicht darstellbare Zeichen enthalten, werden sie nicht zurückgegeben. Stattdessen wird der x-amz-missing-meta
-Header mit der Anzahl der nicht darstellbaren Metadateneinträge als Wert zurückgegeben. Die HeadObject
-Aktion ruft Metadaten von einem Objekt ab, ohne das Objekt selbst zurückzugeben. Dieser Vorgang ist nützlich, wenn Sie nur an den Metadaten eines Objekts interessiert sind. Um HEAD verwenden zu können, müssen Sie LESE-Zugriff auf das Objekt haben. Weitere Informationen finden Sie unter HeadObject in der Amazon Simple Storage Service – API-Referenz.
Benutzerdefinierte Metadaten sind Schlüssel/Wert-Paare. Amazon S3 speichert benutzerdefinierte Metadatenschlüssel in Kleinbuchstaben.
Amazon S3 erlaubt beliebige Unicode-Zeichen in Ihren Metadatenwerten.
Um Probleme bei der Darstellung dieser Metadatenwerte zu vermeiden, sollten Sie US-ASCII-Zeichen verwenden, wenn REST verwendet wird, und UTF-8-Zeichen, wenn SOAP oder browserbasierte Uploads über POST verwendet werden.
Wenn Sie Nicht-US-ASCII-Zeichen in Ihren Metadatenwerten verwenden, wird die bereitgestellte Unicode-Zeichenfolge auf Nicht-US-ASCII-Zeichen untersucht. Werte solcher Header werden gemäß RFC 2047
Im Folgenden wird ein Beispiel gezeigt.
PUT /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host: awsexamplebucket1.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3
Der PUT-Anforderungs-Header ist auf eine Größe von 8 KB begrenzt. Innerhalb des PUT-Anforderungsheaders sind die benutzerdefinierten Metadaten auf eine Größe von 2 KB begrenzt. Die Größe der benutzerdefinierten Metadaten wird anhand der Summe der Byteanzahl der UTF-8-Codierung jedes Schlüssels und Werts gemessen.
Informationen zum Ändern der Metadaten Ihres Objekts nach dem Hochladen durch Erstellen einer Kopie des Objekts, Ändern und Ersetzen des alten Objekts oder Erstellen einer neuen Version finden Sie unter Bearbeiten von Objektmetadaten in der Amazon-S3-Konsole.