Benennen und Verweisen auf Container, Blobs und Metadaten
In diesem Thema werden das Benennen und Verweisen auf Container, Blobs, Metadaten und Momentaufnahmen beschrieben. Ein Speicherkonto kann null oder mehr Container enthalten. Ein Container enthält Eigenschaften, Metadaten und null 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ären Daten, Eigenschaften und Metadaten besteht.
Ressourcennamen
Der URI, der auf einen Container oder ein Blob verweist, muss eindeutig sein. Da jeder Kontoname eindeutig ist, können zwei Konten Container mit demselben Namen haben. In einem bestimmten Speicherkonto muss jeder Container jedoch einen eindeutigen Namen haben. Jedes Blob innerhalb eines bestimmten Containers muss auch einen eindeutigen Namen innerhalb dieses Containers aufweisen.
Wenn Sie versuchen, einen Container oder blob mit einem Namen zu erstellen, der gegen Benennungsregeln verstößt, schlägt die Anforderung mit dem Statuscode 400 (ungültige Anforderung) fehl.
Blob- und Containernamen werden innerhalb einer URL an den Blob-Dienst übergeben. Bestimmte Zeichen müssen prozentcodiert sein, damit sie in einer URL mit UTF-8 (bevorzugt) oder MBCS angezeigt werden. Diese Codierung erfolgt automatisch, wenn Sie die Azure Storage-Clientbibliotheken verwenden. Es gibt jedoch bestimmte Zeichen, die in URL-Pfaden nicht gültig sind, auch wenn sie codiert 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, die nicht für die Verwendung in Container- oder Blobnamenempfohlen werden.
Codepunkte wie \uE000, während sie in NTFS-Dateinamen gültig sind, sind ungültige Unicode-Zeichen, sodass sie nicht verwendet werden können. Darüber hinaus sind einige ASCII- oder Unicode-Zeichen wie Steuerzeichen (0x00 zum 0x1F, \u0081usw.) ebenfalls nicht zulässig.
Weitere Regeln für Unicode-Zeichenfolgen in HTTP/1.1 finden Sie unter RFC 2616, Abschnitt 2.2: Grundlegende Regeln und RFC 3987-.
Containernamen
Ein Containername muss ein gültiger DNS-Name sein, der den folgenden Benennungsregeln entspricht:
Containernamen müssen mit einem Buchstaben oder einer Zahl beginnen oder enden und dürfen nur Buchstaben, Zahlen und das Bindestrich/Minuszeichen (-) enthalten.
Jedem Bindestrich/Minuszeichen (-) muss unmittelbar ein Buchstaben oder eine Zahl vorangestellt und gefolgt werden; Aufeinander folgende Bindestriche sind in Containernamen nicht zulässig.
Alle Buchstaben in einem Containernamen müssen Kleinbuchstaben sein.
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 maximal 1.024 Zeichen lang sein.
Bei Verzeichnisnamen wird zwischen Groß- und Kleinschreibung unterschieden.
Reservierte URL-Zeichen müssen ordnungsgemäß escaped sein.
Anmerkung
Vermeiden Sie Verzeichnisnamen, die mit einem Punkt (.), einem Schrägstrich (/), einem umgekehrten Schrägstrich (\) oder einer Sequenz oder Kombination der beiden enden. Keine Pfadsegmente sollten mit einem Punkt (.) enden.
Blobnamen
Ein BLOB-Name 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 Blobname muss mindestens ein Zeichen lang sein und darf nicht mehr als 1.024 Zeichen lang sein, für Blobs in Azure Storage.
Der Azure Storage-Emulator unterstützt Blobnamen bis zu 256 Zeichen lang. Weitere Informationen finden Sie unter Verwenden des Azure Storage-Emulators für entwicklung und Tests.
Blobnamen müssen groß-/kleinschreibung beachtet werden.
Reservierte URL-Zeichen müssen ordnungsgemäß escaped sein.
Es gibt Einschränkungen für die Anzahl der Pfadsegmente, die einen BLOB-Namen umfassen. Ein Pfadsegment ist die Zeichenfolge zwischen aufeinander folgenden Trennzeichen (z. B. einem Schrägstrich
/
), der dem Verzeichnis oder virtuellen Verzeichnis entspricht. Die folgenden Pfadsegmentbeschränkungen gelten für Blobnamen:- Wenn das Speicherkonto nicht hierarchischen Namespace aktiviert ist, darf die Anzahl der Pfadsegmente, die den Blobnamen umfassen, 254 nicht überschreiten.
- Wenn das Speicherkonto den hierarchischen Namespace aktiviert hat, darf die Anzahl der Pfadsegmente, die den Blobnamen umfassen, 63 nicht überschreiten (einschließlich Pfadsegmente für Kontoname und Containername).
Anmerkung
Vermeiden Sie Blobnamen, die mit einem Punkt (.), einem Schrägstrich (/), einem umgekehrten Schrägstrich (\) oder einer Sequenz oder Kombination der beiden enden. Keine Pfadsegmente sollten mit einem Punkt (.) enden.
Standardmäßig basiert der Blob-Dienst auf einem flachen Speicherschema, nicht auf einem hierarchischen Schema. Sie können jedoch ein Zeichen- oder Zeichenfolgentrennzeichen innerhalb eines Blobnamens angeben, um eine virtuelle Hierarchie zu erstellen. In der folgenden Liste werden beispielsweise gültige und eindeutige Blobnamen angezeigt. Beachten Sie, dass eine Zeichenfolge sowohl als BLOB-Name als auch als virtueller Verzeichnisname im selben Container gültig sein kann:
/ein
/a.txt
/a/b
/a/b.txt
Beim Aufzählen von Blobs können Sie das Trennzeichen nutzen.
Metadatenschlüssel- und Wertnamen
Metadaten für einen Container oder eine BLOB-Ressource werden als Name-Wert-Paare gespeichert, die der Ressource zugeordnet sind. Metadatenschlüsselnamen müssen den folgenden Benennungsregeln entsprechen:
Muss mit einem Buchstaben oder Unterstrich beginnen
Alle folgenden Zeichen können Buchstaben, Zahlen oder Unterstriche sein.
Der Name des Metadatenschlüssels muss gültiger ASCII-Wert sein.
Metadatenwertnamen müssen auch gültige ASCII-Werte sein. Beachten Sie, dass Metadatennamen die Groß-/Kleinschreibung beibehalten, bei der sie erstellt wurden, aber beim Festlegen oder Lesen die Groß-/Kleinschreibung nicht beachtet wird. Wenn zwei oder mehr Metadatenheader mit demselben Namen für eine Ressource übermittelt werden, gibt der Blob-Dienst den Statuscode 400 (ungültige Anforderung) zurück.
Ressourcen-URI-Syntax
Jede Ressource verfügt über einen entsprechenden Basis-URI, der sich auf die Ressource selbst bezieht.
Für das Speicherkonto enthält der Basis-URI nur den Namen des Kontos:
https://myaccount.blob.core.windows.net
Für einen Container enthält der Basis-URI den Namen des Kontos und den Namen des Containers:
https://myaccount.blob.core.windows.net/mycontainer
Bei einem Blob enthält der Basis-URI den Namen des Kontos, den Namen des Containers und den Namen des Blobs:
https://myaccount.blob.core.windows.net/mycontainer/myblob
Ein Speicherkonto verfügt möglicherweise über einen Stammcontainer, einen Standardcontainer, der aus dem URI weggelassen werden kann. Auf einen Blob im Stammcontainer kann verwiesen werden, ohne den Container zu benennen, oder auf den Stammcontainer kann explizit durch seinen Namen ($root
) 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 Blobs, das beim Erstellen der Momentaufnahme gespeichert wurde. Sie können Momentaufnahmen verwenden, um eine Sicherung oder einen Prüfpunkt eines Blobs zu erstellen. Ein Snapshot-BLOB-Name enthält den Basis-BLOB-URI sowie einen Datum-Uhrzeit-Wert, der angibt, wann die Momentaufnahme erstellt wurde.
Gehen Sie beispielsweise davon aus, dass ein Blob den folgenden URI aufweist:
https://myaccount.blob.core.windows.net/mycontainer/myblob
Der URI für eine Momentaufnahme dieses Blobs wird wie folgt gebildet:
https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
Unicode-Zeichen werden nicht für die Verwendung in Container- oder Blobnamen empfohlen.
Die folgende Tabelle enthält eine Liste von Unicode-Zeichen, die nicht für die Verwendung in Container- oder Blobnamen empfohlen werden. Diese Zeichen können, wenn sie in Kombination mit anderen Zeichen in dieser Liste verwendet werden, UTF-8- oder MBCS-Decodierung fehlschlagen, was zu einem Fehler der Anforderung an den Blob-Dienst 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+BFFFF |
U+DFFFE |
U+DFFFF |
U+EFFFE |
U+EFFFF |
U+FFFFE |
U+FFFFF |