Benennen von und Verweisen auf Container, Blobs und Metadaten

In diesem Thema wird beschrieben, wie Sie Container, BLOBs, Metadaten und Momentaufnahmen benennen und auf diese verweisen. Ein Speicherkonto kann keinen oder mehr Container enthalten. Ein Container enthält Eigenschaften, Metadaten und kein oder mehr BLOBs. Wenn Ihr Konto über einen hierarchischen Namespace verfügt, kann ein Container auch null oder mehr Verzeichnisse enthalten, und diese Verzeichnisse können null oder mehr Blobs enthalten. Ein BLOB ist jede einzelne Entität, die aus Binärdaten, Eigenschaften und Metadaten besteht.

Ressourcennamen

Der URI, mit dem auf einen Container oder auf ein BLOB verwiesen wird, muss eindeutig sein. Da jeder Kontoname eindeutig ist, können zwei Konten über Container mit demselben Namen verfügen. Innerhalb eines bestimmten Speicherkontos muss hingegen jeder Container einen eindeutigen Namen aufweisen. Jedes BLOB in einem Container muss außerdem über einen Namen verfügen, der in diesem Container eindeutig ist.

Wenn Sie versuchen, einen Container oder ein BLOB mit einem Namen zu erstellen, der gegen die Benennungsregeln verstößt, schlägt die Anforderung mit dem Statuscode 400 (Ungültige Anforderung) fehl.

BLOB- und Containernamen werden dem Blob-Dienst innerhalb einer URL übergeben. Bestimmte Zeichen müssen in einer URL mit Prozentzeichen codiert sein, wobei UTF-8 (empfohlen) oder MBCS zu verwenden ist. Diese Codierung erfolgt automatisch, wenn Sie die Azure Storage-Clientbibliotheken verwenden. Allerdings gibt es bestimmte Zeichen, die auch codiert in URL-Pfaden nicht gültig sind. Wenn diese Zeichen in Blob- oder Containernamen angezeigt werden, schlägt die Anforderung möglicherweise fehl. Eine Liste dieser Zeichen finden Sie unter Unicode-Zeichen werden nicht für die Verwendung in Container- oder Blobnamen empfohlen.

Codepunkte wie \uE000 sind zwar in NTFS-Dateinamen gültig, stellen aber keine gültigen Unicode-Zeichen dar und dürfen deshalb nicht verwendet werden. Darüber hinaus sind einige ASCII- und Unicode-Zeichen, z. B. Steuerzeichen (0x00 bis 0x1F, \u0081 usw.), ebenfalls nicht zulässig.

Weitere Regeln für Unicode-Zeichenfolgen in HTTP/1.1 finden Sie unter RFC 2616, Abschnitt 2.2: Grundregeln und RFC 3987.

Containernamen

Ein Containername muss ein gültiger DNS-Name sein und den folgenden Benennungsregeln entsprechen:

  • Containernamen müssen mit einem Buchstaben oder einer Zahl beginnen oder enden und dürfen nur Buchstaben, Zahlen und den Bindestrich/Minuszeichen (-) enthalten.

  • Jedem Bindestrich/Minuszeichen (-) muss sofort ein Buchstabe oder eine Zahl gefolgt sein; Aufeinanderfolgende Bindestriche sind in Containernamen nicht zulässig.

  • Der Containername darf ausschließlich Kleinbuchstaben enthalten.

  • Containernamen müssen zwischen 3 und 63 Zeichen lang sein.

Verzeichnisnamen

Wenn Ihr Konto über einen hierarchischen Namespace verfügt, muss ein Verzeichnisname den folgenden Benennungsregeln entsprechen:

  • Ein Verzeichnisname kann eine beliebige Kombination von Zeichen enthalten.

  • Ein Verzeichnisname muss mindestens ein Zeichen lang sein und darf nicht mehr als 1.024 Zeichen lang sein.

  • Bei Verzeichnisnamen wird die Groß-/Kleinschreibung beachtet.

  • Reservierte URL-Zeichen müssen korrekt mit Escapezeichen versehen sein.

Hinweis

Vermeiden Sie Verzeichnisnamen, die mit einem Punkt (.), einem Schrägstrich (/), einem umgekehrten Schrägstrich (\) oder einer Sequenz oder Kombination aus beiden enden. Keine Pfadsegmente sollten mit einem Punkt (.) enden.

Screenshot: Umgekehrter Schrägstrich nicht zulässig.

BLOB-Namen

Ein Blobname muss den folgenden Benennungsregeln entsprechen. Diese Regeln gelten auch für Blobs in Konten mit einem hierarchischen Namespace, sofern nicht anders angegeben.

  • Ein BLOB-Name kann eine beliebige Kombination von Zeichen enthalten.

  • Ein BLOB-Name muss mindestens ein Zeichen lang sein und darf nicht länger als 1024 Zeichen sein, für BLOB in sein und Azure Storage

    Der Azure Storage-Emulator unterstützt Blobnamen mit einer Länge von bis zu 256 Zeichen. Weitere Informationen finden Sie unter Verwenden des Azure-Speicheremulators für Entwicklung und Tests.

  • Bei BLOB-Namen wird die Groß- und Kleinschreibung beachtet.

  • Reservierte URL-Zeichen müssen korrekt mit Escapezeichen versehen sein.

  • Es gibt Einschränkungen für die Anzahl von Pfadsegmenten, die einen Blobnamen enthalten. Ein Pfadsegment ist die Zeichenfolge zwischen aufeinanderfolgenden Trennzeichen (z. B. einem Schrägstrich /), die dem Verzeichnis oder dem virtuellen Verzeichnis entspricht. Die folgenden Pfadsegmentbeschränkungen gelten für Blobnamen:

    • Wenn für das Speicherkonto kein hierarchischer Namespace aktiviert ist , darf die Anzahl der Pfadsegmente, die den Blobnamen enthalten, 254 nicht überschreiten.
    • Wenn für das Speicherkonto der hierarchische Namespace aktiviert ist, darf die Anzahl der Pfadsegmente, die den Blobnamen enthalten, 63 nicht überschreiten (einschließlich Pfadsegmente für Kontoname und Containername).

Hinweis

Vermeiden Sie Blobnamen, die mit einem Punkt (.), einem Schrägstrich (/), einem umgekehrten Schrägstrich (\) oder einer Sequenz oder Kombination aus beiden enden. Keine Pfadsegmente sollten mit einem Punkt (.) enden.

Screenshot: Schrägstrich nicht zulässig.

Standardmäßig basiert der Blobdienst auf einem flachen Speicherschema, nicht auf einem hierarchischen Schema. Allerdings können Sie in einem BLOB-Namen ein Zeichen- oder Zeichenfolgentrennzeichen angeben, um eine virtuelle Hierarchie zu erstellen. In der folgenden Liste werden beispielsweise gültige und eindeutige BLOB-Namen aufgeführt. Beachten Sie, dass eine Zeichenfolge in demselben Container sowohl als BLOB-Name als auch als Name des virtuellen Verzeichnisses gültig sein kann:

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

Sie können beim Aufzählen von BLOBs das Trennzeichen nutzen.

Metadatennamen

Metadaten für eine Container- oder BLOB-Ressource werden als Name-Wert-Paare gespeichert, die der Ressource zugeordnet sind. Metadatennamen müssen den Benennungsregeln für C#-Bezeichner entsprechen.

Beachten Sie, dass für Metadatennamen die Groß-/Kleinschreibung beibehalten wird, die bei der Erstellung verwendet wurde. Beim Festlegen oder Lesen wird die Groß-/Kleinschreibung aber nicht berücksichtigt. Wenn zwei oder mehr Metadatenheader mit demselben Namen für eine Ressource gesendet werden, gibt der Blob-Dienst den Statuscode 400 zurück (Ungültige Anforderung).

Syntax von Ressourcen-URIs

Jede Ressource weist einen entsprechenden Basis-URI auf, der auf die Ressource selbst verweist.

Für das Speicherkonto schließt der Basis-URI nur den Namen des Kontos ein:

https://myaccount.blob.core.windows.net

Bei einem Container enthält der Basis-URI den Namen des Kontos und den Namen des Containers:

https://myaccount.blob.core.windows.net/mycontainer

Für ein BLOB schließt der Basis-URI den Namen des Kontos, den Namen des Containers und den Namen des BLOB ein:

https://myaccount.blob.core.windows.net/mycontainer/myblob

Ein Speicherkonto kann einen Stammcontainer aufweisen, einen Standardcontainer, der im URI ausgelassen werden kann. Auf ein BLOB im Stammcontainer kann verwiesen werden, ohne den Container zu benennen, oder es kann explizit über den Namen ($root) auf den Stammcontainer verwiesen werden. Weitere Informationen finden Sie unter Arbeiten mit dem Stammcontainer . Die folgenden URIs verweisen beide auf ein BLOB im Stammcontainer:

https://myaccount.blob.core.windows.net/myblob  
https://myaccount.blob.core.windows.net/$root/myblob  

BLOB-Momentaufnahmen

Eine Momentaufnahme ist eine schreibgeschützte Version eines BLOB, das in dem Zustand gespeichert wird, in dem es sich zum Zeitpunkt der Erstellung der Momentaufnahme befand. Sie können Momentaufnahmen verwenden, um eine Sicherung oder einen Prüfpunkt für ein BLOB zu erstellen. Der Name eines Momentaufnahme-BLOB enthält den Basis-URI des BLOB sowie einen Datum-Zeit-Wert, der angibt, wann die Momentaufnahme erstellt wurde.

Angenommen, ein BLOB weist den folgenden URI auf:

https://myaccount.blob.core.windows.net/mycontainer/myblob

Der URI für eine Momentaufnahme dieses BLOB wird wie folgt gebildet:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Die folgende Tabelle enthält eine Liste von Unicode-Zeichen, die nicht für die Verwendung in Container- oder Blobnamen empfohlen werden. Wenn diese Zeichen in Kombination mit anderen Zeichen in dieser Liste verwendet werden, können die UTF-8- oder MBCS-Decodierung fehlschlagen, was zu einem Fehler der Anforderung an den Blobdienst führt.

Unicode-Zeichen
U+0080
U+0082
U+0083
U+0084
U+0085
U+0086
U+0087
U+0088
U+0089
U+008A
U+008B
U+008C
U+008E
U+0091
U+0092
U+0093
U+0094
U+0095
U+0096
U+0097
U+0098
U+0099
U+009A
U+009B
U+009C
U+009E
U+009F
U+FDD1
U+FDD2
U+FDD3
U+FDD4
U+FDD5
U+FDD6
U+FDD7
U+FDD8
U+FDD9
U+FDDA
U+FDDB
U+FDDC
U+FDDE
U+FDDF
U+FDE0
U+FDE1
U+FDE2
U+FDE3
U+FDE4
U+FDE5
U+FDE6
U+FDE7
U+FDE8
U+FDE9
U+FDEA
U+FDEB
U+FDEC
U+FDED
U+FDEE
U+FDEF
U+FFF0
U+FFF1
U+FFF2
U+FFF3
U+FFF4
U+FFF5
U+FFF6
U+FFF7
U+FFF8
U+FFF9
U+FFFA
U+FFFB
U+FFFC
U+FFFD
U+FFFE
U+FFFF
U+1FFFE
U+1FFFF
U+2FFFE
U+2FFFF
U+3FFFE
U+3FFFF
U+5FFFE
U+5FFFF
U+6FFFE
U+6FFFF
U+7FFFE
U+7FFFF
U+9FFFE
U+9FFFF
U+AFFFE
U+AFFFF
U+BFFFE
U+BFF
U+DFFFE
U+DFF
U+EFFFE
U+EFFFF
U+FFFFE
U+FFFFF

Weitere Informationen