Erstellen von Objektschlüsselnamen - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen von Objektschlüsselnamen

Der Objektschlüssel (oder Schlüsselname) identifiziert das Objekt in einem Amazon-S3-Bucket eindeutig. Objekt-Metadaten bestehen aus Name/Wert-Paaren. Weitere Informationen zu Objekt-Metadaten erhalten Sie unter Arbeiten mit Objekt-Metadaten.

Wenn Sie ein Objekt erstellen, geben Sie den Schlüsselnamen an, der das Objekt in dem Bucket eindeutig identifiziert. Wenn Sie in der Amazon-S3-Konsole einen Bucket markieren, wird beispielsweise eine Liste der Objekte in Ihrem Bucket angezeigt. Diese Namen sind die Objektschlüssel. Der Objektschlüsselname ist eine Sequenz aus Unicode-Zeichen mit UTF-8-Codierung und einer Länge von bis zu 1 024 Byte. Bei den Objektschlüsselnamen muss die Groß- und Kleinschreibung beachtet werden.

Anmerkung

Objektschlüsselnamen mit dem Wert „soap“ werden für virtual-hosted-style Anfragen nicht unterstützt. Für Werte von Objektschlüsselnamen, bei denen „soap“ verwendet wird, muss stattdessen eine URL im Pfadformat verwendet werden.

Das Amazon-S3-Datenmodell ist eine flache Struktur: Sie erstellen einen Bucket und der Bucket speichert Objekte. Es gibt keine Hierarchie von Unterbuckets oder Unterordnern. Sie können jedoch mit den Schlüsselnamenpräfixen und Trennzeichen eine logische Hierarchie erschließen, wie in der Amazon-S3-Konsole. Die Amazon-S3-Konsole unterstützt ein Ordnerkonzept. Weitere Informationen zum Bearbeiten von Metadaten über die Amazon-S3-Konsole finden Sie unter Bearbeiten von Objektmetadaten in der Amazon-S3-Konsole.

Angenommen, Ihr Bucket (admin-created) enthält vier Objekte mit den folgenden Objektschlüsseln:

Development/Projects.xls

Finance/statement1.pdf

Private/taxdocument.pdf

s3-dg.pdf

Die Konsole verwendet die Schlüsselnamenpräfixe (Development/, Finance/ und Private/) und das Trennzeichen ("/"), um eine Ordnerstruktur wie dargestellt anzuzeigen. Der s3-dg.pdf-Schlüssel hat kein Präfix, deshalb erscheint sein Objekt direkt auf Root-Ebene des Buckets. Wenn Sie den Ordner Development/ öffnen, werden Sie darin das Objekt Projects.xlsx sehen.

  • Amazon S3 unterstützt Buckets und Objekt. Es gibt keine Hierarchie in Amazon S3. Durch die Verwendung von Präfixen und Trennzeichen in einem Objektschlüsselnamen können die Amazon S3 S3-Konsole und die AWS SDKs jedoch Hierarchien ableiten und das Konzept von Ordnern einführen.

  • Die Amazon-S3-Konsole implementiert die Ordnerobjekterstellung, indem sie ein Null-Byte-Objekt mit dem Wert des Ordners für Präfix und Trennzeichen als Schlüssel erstellt. Diese Ordnerobjekte werden nicht in der Konsole angezeigt. Ansonsten verhalten sie sich wie alle anderen Objekte und können über die REST-API, AWS CLI und AWS SDKs angezeigt und bearbeitet werden.

Richtlinien für Objektschlüsselnamen

Sie können in einem Objektschlüsselnamen jedes beliebige UTF-8-Zeichen verwenden. Die Verwendung bestimmter Zeichen in Schlüsselnamen kann jedoch bei manchen Anwendungen und Protokollen zu Problemen führen. Die folgenden Richtlinien helfen Ihnen, die Compliance mit DNS, web-sicheren Zeichen, XML-Parsern und anderen APIs zu maximieren.

Sichere Zeichen

Die folgenden Zeichensätze sind allgemein sicher für die Verwendung in Schlüsselnamen.

Alphanumerische Zeichen
  • 0-9

  • a-z

  • A-Z

Sonderzeichen
  • Ausrufezeichen (!)

  • Bindestrich (-)

  • Unterstrich (_)

  • Punkt (.)

  • Sternchen (*)

  • Einzelnes Anführungszeichen (')

  • Öffnende Klammer (()

  • Schließende Klammer ())

Nachfolgend finden Sie Beispiele für gültige Objektschlüsselnamen:

  • 4my-organization

  • my.great_photos-2014/jan/myvacation.jpg

  • videos/2014/birthday/video1.wmv

Anmerkung

Bei Objekten mit Schlüsselnamen, die mit Punkt(en) "." enden, die über die Amazon-S3-Konsole heruntergeladen werden, werden sämtliche Punkte "." aus dem Schlüsselnamen des heruntergeladenen Objekts entfernt. Um ein Objekt herunterzuladen, dessen Schlüsselname auf Punkt (en) „.“ endet und im heruntergeladenen Objekt gespeichert ist, müssen Sie die AWS Command Line Interface (AWS CLI), AWS SDKs oder die REST-API verwenden.

Darüber hinaus sollten Sie folgende Präfixbeschränkungen beachten:

  • Objekte mit dem Präfix „./“ müssen mit der AWS Command Line Interface (AWS CLI), den AWS SDKs oder der REST-API hoch- oder heruntergeladen werden. Sie können die Amazon-S3-Konsole nicht verwenden.

  • Objekte mit dem Präfix „../“ können nicht mit AWS Command Line Interface (AWS CLI) oder der Amazon-S3-Konsole hochgeladen werden.

Zeichen, die möglicherweise eine Sonderverarbeitung benötigen

Die folgenden Zeichen in einem Schlüsselnamen erfordern möglicherweise eine zusätzliche Verarbeitung im Code oder müssen URL-codiert oder als HEX angegeben werden. Einige davon sind nicht darstellbare Zeichen, und Ihr Browser kann sie ggf. nicht verarbeiten, was zudem einer speziellen Vorgehensweise bedarf:

  • Ampersand ("&")

  • Dollar ("$")

  • ASCII-Zeichenbereiche 00–1F hex (0–31 dezimal) und 7F (127 dezimal)

  • 'At'-Symbol ("@")

  • Gleichheitszeichen ("=")

  • Semikolon (";")

  • Schrägstrich ("/")

  • Doppelpunkt (":")

  • Plus ("+")

  • Leerzeichen – Wichtige Leerzeichenfolgen gehen möglicherweise bei bestimmten Verwendungszwecken verloren (insbesondere Mehrfachleerzeichen).

  • Komma (",")

  • Fragezeichen ("?")

Zeichen, die Sie vermeiden sollten

Wir empfehlen, die folgenden Zeichen nicht in einem Schlüsselnamen zu verwenden, da die Behandlung von Sonderzeichen häufig vorkommt und diese nicht in allen Anwendungen einheitlich ist.

  • Umgekehrter Schrägstrich ("\")

  • Linke geschweifte Klammer ("{")

  • Nicht darstellbare ASCII-Zeichen (128-255 Dezimalzeichen)

  • Caret ("^")

  • Rechte geschweifte Klammer ("}")

  • Prozentzeichen ("%")

  • Accent Grave ("`")

  • Rechte eckige Klammer ("]")

  • Anführungszeichen

  • Größersymbol (">")

  • Linke eckige Klammer ("[")

  • Tilde ("~")

  • Kleiner als-Zeichen („<“)

  • Pfundzeichen ("#")

  • Vertikaler Strich ("|")

Gemäß dem XML-Standard für die end-of-line Verarbeitung ist der gesamte XML-Text normalisiert, sodass Zeilenumbrüche (ASCII-Code 13) und Zeilenumbrüche, denen unmittelbar ein Zeilenvorschub folgt (ASCII-Code 10), durch ein einzelnes Zeilenvorschubzeichen ersetzt werden. Um das korrekte Parsen von Objektschlüsseln in XML-Anforderungen zu gewährleisten, müssen Zeilenumbrüche und andere Sonderzeichen durch den entsprechenden XML-Entitätscode ersetzt werden, wenn sie in XML-Markierungen eingefügt werden. Im Folgenden finden Sie eine Liste solcher Sonderzeichen und ihrer entsprechenden Entitätscodes:

  • ' wie &apos;

  • ” wie &quot;

  • & wie &amp;

  • < wie &lt;

  • > wie &gt;

  • \r wie &#13; oder &#x0D;

  • \n wie &#10; oder &#x0A;

Das folgende Beispiel veranschaulicht die Verwendung eines XML-Entitätscodes als Ersatz für eine Zeilenumschaltung. Diese DeleteObjects-Anforderung löscht ein Objekt mit dem key-Parameter: /some/prefix/objectwith\rcarriagereturn (wobei\ r die Zeilenumschaltung ist).

<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Object> <Key>/some/prefix/objectwith&#13;carriagereturn</Key> </Object> </Delete>