Markieren von Amazon-S3-Objekten - 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.

Markieren von Amazon-S3-Objekten

Der Objektschlüssel (oder Schlüsselname) identifiziert das Objekt in einem Amazon-S3-Bucket eindeutig. Wenn Sie ein Objekt erstellen, geben Sie den Schlüsselnamen an. Wenn Sie in der Amazon-S3-Konsole einen Bucket auswählen, wird beispielsweise eine Liste der Objekte in Ihrem Bucket angezeigt. Diese Namen sind die Objektschlüssel.

Der Objektschlüsselname ist eine Folge von Unicode-Zeichen mit UTF-8-Kodierung mit einer Länge von bis zu 1.024 Byte oder 1.204 lateinischen Zeichen. In einigen Gebietsschemas kann ein einzelnes Zeichen 2 Byte entsprechen. Beachten Sie bei der Benennung Ihrer Objekte Folgendes:

  • Bei den Objektschlüsselnamen muss die Groß- und Kleinschreibung beachtet werden.

  • Objektschlüsselnamen enthalten alle Präfixe (in der Konsole als Ordner bezeichnet). Development/Projects.xlsIst beispielsweise der vollständige Objektschlüsselname des Objekts, das Projects.xls sich innerhalb des Development Präfixes (oder Ordners) befindet. Das Präfix, das Trennzeichen (/) und der Name des Objekts sind in der 1.024-Byte-Beschränkung für den Objektschlüsselnamen enthalten. Weitere Hinweise zu Präfixen und Ordnern finden Sie unter. Auswählen von Objektschlüsselnamen

  • Bestimmte Zeichen erfordern möglicherweise eine besondere Behandlung, wenn sie in Objektschlüsselnamen verwendet werden. Weitere Informationen finden Sie unter Richtlinien für Objektschlüsselnamen.

Anmerkung

Objektschlüsselnamen mit dem Wert "soap" werden für virtual-hosted-style Anfragen nicht unterstützt. Für Objektschlüsselnamenwerte, bei denen verwendet "soap" wird, muss stattdessen eine URL im Pfadstil verwendet werden.

Auswählen von Objektschlüsselnamen

Das Amazon-S3-Datenmodell ist eine flache Struktur: Sie erstellen einen Bucket und der Bucket speichert Objekte. Es gibt keine Hierarchie von Unter-Buckets 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/, undPrivate/) und das Trennzeichen (/), um eine Ordnerstruktur darzustellen. Der s3-dg.pdf Schlüssel enthält kein durch Schrägstrich getrenntes Präfix, sodass sein Objekt direkt auf der Stammebene des Buckets angezeigt wird. 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 AWS SDKs können die Amazon S3-Konsole und die Amazon S3-Konsole jedoch eine Hierarchie 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 angezeigt und AWS SDKs 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 dabei, die Einhaltung von DNS, websicheren Zeichen, XML-Parsern und anderen Richtlinien zu maximieren. APIs

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 (*)

  • Einfaches 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

Wenn Sie die Amazon S3 S3-Konsole verwenden, um Objekte herunterzuladen, deren Schlüsselnamen mit Punkten (.) enden, werden die Punkte von den Enden der Schlüsselnamen der heruntergeladenen Objekte entfernt. Um Punkte am Ende von Schlüsselnamen in heruntergeladenen Objekten beizubehalten, müssen Sie die AWS Command Line Interface (AWS CLI) AWS SDKs, oder Amazon S3 S3-REST-API verwenden.

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

  • Objekte mit dem Präfix von ./ müssen mit der AWS CLI, oder REST-API hoch AWS SDKs - oder heruntergeladen werden. Sie können die Amazon S3 S3-Konsole nicht verwenden, um diese Objekte hochzuladen.

  • Objektschlüssel, die relative Pfadelemente enthalten (z. B.../), sind gültig, wenn bei der Analyse die left-to-right Gesamtzahl der relativen Pfadsegmente niemals die Anzahl der gefundenen nicht-relativen Pfadelemente übersteigt. Diese Regel gilt für alle Anfragen, die über die Amazon S3 S3-Konsole, die Amazon S3 S3-REST-API und gestellt AWS SDKs werden. AWS CLI

    Zum Beispiel:

    • videos/2014/../../video1.wmvist gültig.

    • videos/../../video1.wmvist nicht gültig.

    • videos/../../2014/video1.wmvist nicht gültig.

Zeichen, die möglicherweise eine Sonderverarbeitung benötigen

Die folgenden Zeichen in einem Schlüsselnamen erfordern möglicherweise zusätzliche Codebehandlung und müssen höchstwahrscheinlich URL-kodiert sein oder als HEX referenziert werden. Bei einigen dieser Zeichen handelt es sich um nicht druckbare Zeichen, die Ihr Browser möglicherweise nicht verarbeiten kann und die ebenfalls eine besondere Behandlung erfordern:

  • Und-Zeichen () &

  • Dollarzeichen () $

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

  • Kunstsymbol (@)

  • Gleichheitszeichen (=)

  • Semikolon () ;

  • Schrägstrich (/)

  • Doppelpunkt () :

  • Pluszeichen (+)

  • Leerzeichen — In einigen Fällen können signifikante Abfolgen von Leerzeichen verloren gehen (insbesondere mehrere Leerzeichen)

  • 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:

  • Backslash () \

  • Linke Klammer () {

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

  • Caret oder Circumflex () ^

  • Rechte Zahnspange () }

  • Prozentuales Zeichen () %

  • Schwerer Akzent oder Backtick () `

  • Rechte Klammer () ]

  • Anführungszeichen (")

  • Größer als das Zeichen (>)

  • Linke Klammer ([)

  • Tilde () ~

  • Weniger als ein Zeichen () <

  • Pfund-Zeichen (#)

  • Vertikaler Balken oder Rohr (|)

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, auf die unmittelbar ein Zeilenvorschub folgt (ASCII-Code 10), auch bekannt als Zeilenumbruchzeichen, durch ein einzelnes Zeilenvorschubzeichen ersetzt werden. Um die korrekte Analyse von Objektschlüsseln in XML-Anfragen sicherzustellen, müssen Zeilenumbrüche und andere Sonderzeichen durch den entsprechenden XML-Entitätscode ersetzt werden, wenn sie in XML-Tags eingefügt werden.

Im Folgenden finden Sie eine Liste solcher Sonderzeichen und ihrer entsprechenden XML-Entitätscodes:

  • Apostroph (') muss ersetzt werden durch &apos;

  • Das Anführungszeichen (") muss ersetzt werden durch &quot;

  • Das Und-Zeichen (&) muss durch ersetzt werden &amp;

  • Kleineres Vorzeichen (<) muss durch ersetzt werden &lt;

  • Das Zeichen „Größer als“ (>>) muss durch ersetzt werden &gt;

  • Carriage Return (\r) muss durch &#13; oder ersetzt werden &#x0D;

  • Newline (\n) muss durch oder ersetzt &#10; werden &#x0A;

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

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