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. 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.

Wichtig

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 tritt automatisch auf, wenn Sie die Azure Storage Clientbibliotheken verwenden. Allerdings gibt es bestimmte Zeichen, die auch codiert in URL-Pfaden nicht gültig sind. Diese Zeichen können nicht in BLOB- oder Containernamen enthalten sein. 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. 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 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 (-) enthalten.

  • Jedem Bindestrich (-) muss unmittelbar ein Buchstabe oder eine Zahl vorangehen und folgen von einem Buchstaben oder einer Zahl; zudem dürfen nicht mehrere Bindestriche direkt aufeinander folgen.

  • Der Containername darf ausschließlich Kleinbuchstaben enthalten.

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

BLOB-Namen

BLOB-Namen müssen den folgenden Benennungsregeln genügen:

  • 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 mit einer Länge von bis zu 256 Zeichen. Weitere Informationen finden Sie unter Verwenden des Azure-Speicheremulators zum Entwickeln und Testen von.

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

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

  • Die Anzahl von Pfadsegmenten, aus denen der Blobname besteht, darf 254 nicht überschreiten. Ein Pfadsegment ist die Zeichenfolge zwischen aufeinander folgenden Trennzeichen (z. B., der Schrägstrich "/")), die dem Namen eines virtuellen Verzeichnisses entspricht.

Hinweis

Vermeiden Sie BLOB-Namen, die mit einem Punkt (.), einem Schrägstrich (/) oder einer Abfolge oder Kombination aus beidem enden. Keine Pfadsegmente sollten mit einem Punkt (.) enden.

Der Blob-Dienst basiert auf einem flachen Speicherschema und 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>

Siehe auch