Freigeben über


Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten

Ein Speicherkonto kann null oder mehr Azure-Dateifreigaben enthalten. Eine Freigabe enthält Eigenschaften, Metadaten und null oder mehr Dateien oder Verzeichnisse. Ein Verzeichnis enthält Eigenschaften und null oder mehr Dateien oder Verzeichnisse. Eine Datei ist jede einzelne Entität, die aus Binären Daten, Eigenschaften und Metadaten besteht.

Ressourcennamen

Der URI, um auf eine Freigabe, ein Verzeichnis oder eine Datei zu verweisen, muss eindeutig sein. Innerhalb eines bestimmten Speicherkontos muss jede Freigabe einen eindeutigen Namen haben. Jede Datei innerhalb einer bestimmten Freigabe oder eines bestimmten Verzeichnisses muss auch einen eindeutigen Namen innerhalb dieser Freigabe oder des Verzeichnisses haben.

Wenn Sie versuchen, eine Freigabe, ein Verzeichnis oder eine Datei mit einem Namen zu erstellen, der gegen Benennungsregeln verstößt, schlägt die Anforderung mit dem Statuscode 400 (ungültige Anforderung) fehl.

Freigeben von Namen

Die Regeln für Dateidienstfreigabenamen sind restriktiver als das, was vom SMB-Protokoll für SMB-Freigabenamen vorgeschrieben wird, sodass die Blob- und Dateidienste ähnliche Benennungskonventionen für Container und Freigaben freigeben können. Die Benennungseinschränkungen für Freigaben sind wie folgt:

  • Ein Freigabename muss ein gültiger DNS-Name sein.
  • Freigabenamen müssen mit einem Buchstaben oder einer Zahl beginnen 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 Freigabenamen nicht zulässig.
  • Alle Buchstaben in einem Freigabenamen müssen Kleinbuchstaben sein.
  • Freigabenamen müssen zwischen 3 und 63 Zeichen lang sein.

In der folgenden Tabelle werden die Benennungseinschränkungen für Azure Files und Azure Blob Storage verglichen:

Benennen und Verweisen auf Container, Blobs und Metadaten SMB-Freigabenameneinschränkungen
• Ein Containername muss ein gültiger DNS-Name sein.
• Containernamen müssen mit einem Buchstaben oder einer Zahl beginnen und dürfen nur Buchstaben, Zahlen und das Bindestrich/Minuszeichen (-) enthalten.
• Jeder Bindestrich/Minuszeichen (-) muss unmittelbar vorangestellt sein und einem Buchstaben oder einer Zahl folgen; Aufeinander folgende Bindestriche sind in Containernamen nicht zulässig.
• Alle Buchstaben in einem Containernamen müssen Kleinbuchstaben sein.
• Containernamen müssen 3 bis 63 Zeichen lang sein.
• Ein Freigabename darf maximal 80 Zeichen lang sein.
• Die folgenden Zeichen sind in einem Freigabenamen unzulässig: \ / [ ] : ¦ < > + = ; , * ? "
• Steuerzeichen im Bereich 0x00 bis einschließlich 0x1F sind in einem Freigabenamen unzulässig.
• Alle anderen Unicode-Zeichen sind legal.
• Bei Namen wird die Groß-/Kleinschreibung beibehalten und die Groß-/Kleinschreibung wird nicht beachtet.

Verzeichnis- und Dateinamen

Azure Files erzwingt die folgenden Benennungsregeln für Verzeichnis- und Dateinamen:

  • Bei Verzeichnis- und Dateinamen wird die Groß-/Kleinschreibung beibehalten und die Groß-/Kleinschreibung nicht beachtet.
  • Verzeichnis- und Dateinamen dürfen maximal 255 Zeichen lang sein.
  • Verzeichnisnamen können nicht mit dem Schrägstrich (/) enden. Wenn angegeben, wird sie automatisch entfernt.
  • Dateinamen dürfen nicht mit dem Schrägstrich (/) enden.
  • Reservierte URL-Zeichen müssen ordnungsgemäß escaped sein.
  • Die folgenden Zeichen sind nicht zulässig: " \ / : | < > * ?
  • Unzulässige URL-Pfadzeichen sind nicht zulässig. Codepunkte wie \uE000, während sie in NTFS-Dateinamen gültig sind, sind keine gültigen Unicode-Zeichen. Darüber hinaus sind einige ASCII- oder Unicode-Zeichen wie Steuerzeichen (0x00 bis 0x1F) 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-.
  • Ungültige Unicode-Zeichen (als ungültige Ersatzpaare bezeichnet) werden nicht unterstützt.
  • Die folgenden Dateinamen sind nicht zulässig: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, dot character (.) und zwei Punktzeichen (..).
  • Ab Version 2021-12-02 unterstützen Verzeichnis- und Dateinamen U+FFFE- und U+FFFF-Zeichen durch alle Vorgänge. Diese Zeichen werden auch über SMB- und REST-Protokolle unterstützt. Listenverzeichnis und Dateien und Listenhandles benötigen Vorgänge eine spezielle Behandlung für diese Zeichen, wie in der jeweiligen Dokumentation erwähnt.

Standardmäßig werden für Dateifreigaben mit aktivierten SMB-Protokoll zeichen punkt (.) am Ende von Verzeichnis- und Dateinamen in Anforderungs-URLs ignoriert oder weggelassen.

  • Wenn beispielsweise eine Datei mit dem Namen file1... erstellt wird, werden die Punkte am Ende ignoriert, und eine Datei mit dem Namen file1 wird erstellt. Dasselbe gilt für Verzeichnisse im Pfad. Wenn eine Dateierstellungsanforderung den Pfad \Dir1\Dir2…\File1 enthält, wird die Datei bei \Dir1\Dir2\File1erstellt.
  • Ab Version 2022-11-02kann das Standardverhalten jedoch überschrieben werden, indem der Header x-ms-allow-trailing-dot in der URL-Anforderung auf true festgelegt wird.
  • Wenn Sie beispielsweise eine Datei mit dem Namen file1... erstellen und die nachfolgenden Punkte einschließen möchten, sollte die x-ms-allow-trailing-dot in den Anforderungsheader aufgenommen und auf truefestgelegt werden. Das gleiche gilt für das Erstellen von Verzeichnisnamen.
  • Wenn Sie bei einer Dateikopieanforderung nachfolgende Punkte in den Namen der Quelldatei aufnehmen möchten, muss der x-ms-source-allow-trailing-dot Header auf truefestgelegt werden. Weitere Informationen finden Sie in den verfügbaren Headeroptionen für jede einzelne REST-API.

Standardmäßig werden für Dateifreigaben mit aktiviertem NFS-Protokoll Punktzeichen (.) am Ende von Verzeichnis- und Dateinamen in Anforderungs-URLs nicht ignoriert.

In der folgenden Tabelle werden die Benennungseinschränkungen für Azure Files und Azure Blob Storage verglichen:

Benennen und Verweisen auf Container, Blobs und Metadaten SMB-Protokollnameneinschränkungen
• Ein Blobname muss mindestens ein Zeichen lang sein und darf maximal 1.024 Zeichen lang sein.
• Blobnamen werden groß-/kleinschreibung beachtet.
• Reservierte URL-Zeichen müssen ordnungsgemäß escaped sein.
• Blobnamen können mit einem virtuellen Verzeichnistrennzeichen enden, z. B. einem Schrägstrich (/)
• Ungültige URL-Pfadzeichen nicht zulässig: Codepunkte wie \uE000, während sie in NTFS-Dateinamen gültig sind, sind keine gültigen Unicode-Zeichen. Darüber hinaus sind einige ASCII- oder Unicode-Zeichen wie Steuerzeichen (0x00 zum 0x1F) 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-.
• Ein Pfadname darf maximal 32.760 Zeichen lang sein.
• Jede Pfadnamenkomponente (Datei/Verzeichnis) darf maximal 255 Zeichen lang sein.
• Ein Pfadname besteht aus einer oder mehreren Pfadnamenkomponenten, die durch das (\) Schrägstrichzeichen getrennt sind.
• Pfadname ist die Groß-/Kleinschreibung beizubehalten und die Groß-/Kleinschreibung zu beachten (zwei Namen, die nur bei Groß- und Kleinschreibung abweichen, ist nicht zulässig).
• Es kann kein Verzeichnispfad vorhanden sein, der mit einem Dateipfad identisch ist.
• Die folgenden Zeichen sind in einem Komponentennamen unzulässig: \ / : ¦ < > * ? "
• Steuerzeichen im Bereich 0x00 bis einschließlich 0x1F sind in einem Freigabenamen unzulässig.

Pfadnamen

Ein Pfadname besteht aus einer oder mehreren Pfadnamenkomponenten (Verzeichnis- oder Dateinamen), die durch das Schrägstrichzeichen (/) getrennt sind. Alle Pfadnamenkomponenten außer der Komponente für den Nachpfadnamen geben Verzeichnisse an. Die Komponente für den Nachpfadnamen gibt ein Verzeichnis oder eine Datei an. Es gelten die folgenden Benennungsregeln:

  • Ein Pfadname darf maximal 2.048 Zeichen lang sein. Einzelne Komponenten im Pfad können maximal 255 Zeichen lang sein.
  • Ein Pfadname besteht aus einer oder mehreren Pfadnamenkomponenten, die durch das Schrägstrichzeichen (/) getrennt sind.
  • Die Tiefe der Unterverzeichnisse im Pfad darf 250 nicht überschreiten.
  • Derselbe Name kann nicht für eine Datei und ein Verzeichnis verwendet werden, das dasselbe übergeordnete Verzeichnis verwendet. Beispielsweise kann eine Datei und ein Verzeichnis, die jeweils benannt data sind, nicht unter demselben übergeordneten Pfad vorhanden sein.

Metadatennamen

Metadaten für eine Freigabe- oder Dateiressource werden als Name-Wert-Paare gespeichert, die der Ressource zugeordnet sind. Metadatennamen müssen den Benennungsregeln für C#-Bezeichnerentsprechen.

Metadatennamen behalten die Groß-/Kleinschreibung bei, bei der sie erstellt wurden, beachten jedoch die Groß-/Kleinschreibung beim Festlegen oder Lesen. Wenn zwei oder mehr Metadatenheader mit demselben Namen für eine Ressource übermittelt werden, gibt der Azure-Dateidienst 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.file.core.windows.net

Für eine Freigabe enthält der Basis-URI den Namen des Kontos und den Namen der Freigabe:

https://myaccount.file.core.windows.net/myshare

Für ein Verzeichnis enthält der Basis-URI den Namen des Kontos, den Namen der Freigabe und den Pfad des Verzeichnisses:

https://myaccount.file.core.windows.net/myshare/myparentdir/mydir

Bei einer Datei enthält der Basis-URI den Namen des Kontos, den Namen der Freigabe und den Pfad der Datei:

https://myaccount.file.core.windows.net/myshare/myfile  
https://myaccount.file.core.windows.net/myshare/mydir/myfile  
https://myaccount.file.core.windows.net/myshare/myparentdir/mydir/myfile  

Siehe auch