Nazewnictwo i odwoływanie się do udziałów, katalogów, plików i metadanych

Konto magazynu może zawierać zero lub więcej udziałów plików platformy Azure. Udział zawiera właściwości, metadane i zero lub więcej plików lub katalogów. Katalog zawiera właściwości i zero lub więcej plików lub katalogów. Plik to dowolna pojedyncza jednostka składająca się z danych binarnych, właściwości i metadanych.

Nazwy zasobów

Identyfikator URI do odwoływania się do udziału, katalogu lub pliku musi być unikatowy. Na danym koncie magazynu każdy udział musi mieć unikatową nazwę. Każdy plik w danym udziale lub katalogu musi również mieć unikatową nazwę w tym udziale lub katalogu.

Jeśli spróbujesz utworzyć udział, katalog lub plik o nazwie naruszającej reguły nazewnictwa, żądanie zakończy się niepowodzeniem z kodem stanu 400 (nieprawidłowe żądanie).

Nazwy udziałów

Reguły dotyczące nazw udziałów usługi plików są bardziej restrykcyjne niż przepisywane przez protokół SMB dla nazw udziałów SMB, dzięki czemu usługi blob i file services mogą współużytkować podobne konwencje nazewnictwa dla kontenerów i udziałów. Ograniczenia nazewnictwa udziałów są następujące:

  • Nazwa udziału musi być prawidłową nazwą DNS.
  • Nazwy udziałów muszą zaczynać się literą lub cyfrą i mogą zawierać tylko litery, cyfry i znaki łącznika/minus (-).
  • Każdy znak łącznika/minus (-) musi być bezpośrednio poprzedzony i poprzedzony literą lub cyfrą; kolejne łączniki nie są dozwolone w nazwach udziałów.
  • Wszystkie litery w nazwie udziału muszą mieć małe litery.
  • Nazwy udziałów muszą mieć długość od 3 do 63 znaków.

W poniższej tabeli porównaliśmy ograniczenia nazewnictwa dla Azure Files i usługi Azure Blob Storage:

Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych Ograniczenia nazw udziałów SMB
• Nazwa kontenera musi być prawidłową nazwą DNS.
• Nazwy kontenerów muszą zaczynać się literą lub cyfrą i mogą zawierać tylko litery, cyfry i znaki łącznika/minus (-).
• Każdy łącznik/znak minus (-) musi być bezpośrednio poprzedzony i poprzedzony literą lub cyfrą; kolejne łączniki nie są dozwolone w nazwach kontenerów.
• Wszystkie litery w nazwie kontenera muszą mieć małe litery.
• Nazwy kontenerów muszą mieć długość od 3 do 63 znaków.
• Nazwa udziału nie może zawierać więcej niż 80 znaków.
• Następujące znaki są niedozwolone w nazwie udziału: \ / [ ] : ¦ < > + = ; , * ? "
• Znaki sterujące w zakresie 0x00 przez 0x1F, włącznie, są niedozwolone w nazwie udziału.
• Wszystkie pozostałe znaki Unicode są legalne.
• Nazwy zachowują wielkość liter i nie uwzględniają wielkości liter.

Nazwy katalogów i plików

Azure Files wymusza następujące reguły nazewnictwa dla nazw katalogów i plików:

  • Nazwy katalogów i plików zachowują wielkość liter i nie uwzględniają wielkości liter.
  • Nazwy składników katalogu i pliku nie mogą zawierać więcej niż 255 znaków.
  • Nazwy katalogów nie mogą kończyć się znakiem ukośnika (/). Jeśli zostanie podana, zostanie ona automatycznie usunięta.
  • Nazwy plików nie mogą kończyć się znakiem ukośnika (/).
  • Zastrzeżone znaki adresów URL muszą być poprzedzone odpowiednim znakiem ucieczki.
  • Następujące znaki nie są dozwolone: " \ / : | < > * ?
  • Niedozwolone znaki ścieżki adresu URL są niedozwolone. Punkty kodu, takie jak \uE000, choć prawidłowe w nazwach plików NTFS, nie są prawidłowymi znakami Unicode. Ponadto niektóre znaki ASCII lub Unicode, takie jak znaki sterujące (0x00 do 0x1F), również nie są dozwolone. Aby uzyskać reguły dotyczące ciągów Unicode w protokole HTTP/1.1 , zobacz RFC 2616, Sekcja 2.2: Podstawowe reguły i RFC 3987.
  • Nieprawidłowe znaki Unicode (nazywane nieprawidłowymi parami zastępczymi) nie są obsługiwane.
  • Następujące nazwy plików nie są dozwolone: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, znak kropki (..) i dwa znaki kropki (..).
  • Począwszy od wersji 2021-12-02, nazwy katalogów i plików obsługują znaki U+FFFE i U+FFFF przez wszystkie operacje. Te znaki są również obsługiwane za pośrednictwem protokołów SMB i REST. Operacje List Directory i Files and List Handles będą wymagały specjalnej obsługi tych znaków, jak wspomniano w odpowiedniej dokumentacji.

Domyślnie znaki kropki (.) na końcu katalogu i nazw plików w adresach URL żądań są ignorowane lub pomijane.

  • Jeśli na przykład tworzony jest plik o nazwie file1... , kropki na końcu zostaną zignorowane, a plik o nazwie file1 zostanie utworzony. To samo dotyczy katalogów w ścieżce. Jeśli żądanie utworzenia pliku zawiera ścieżkę \Dir1\Dir2…\File1 , plik zostanie utworzony pod adresem \Dir1\Dir2\File1.
  • Jednak począwszy od wersji 2022-11-02, domyślne zachowanie można przesłonić, ustawiając nagłówek x-ms-allow-trailing-dot na true w żądaniu adresu URL.
  • Jeśli na przykład chcesz utworzyć plik o nazwie file1... i dołączyć końcowe kropki, x-ms-allow-trailing-dot element powinien zostać uwzględniony w nagłówku żądania i ustawiony na truewartość . Dotyczy to również tworzenia nazw katalogów.
  • Jeśli w przypadku żądania kopiowania pliku chcesz uwzględnić końcowe kropki w nazwie pliku źródłowego, x-ms-source-allow-trailing-dot nagłówek musi mieć wartość true. Aby uzyskać więcej informacji, zapoznaj się z dostępnymi opcjami nagłówka dla każdego indywidualnego interfejsu API REST.

W poniższej tabeli porównaliśmy ograniczenia nazewnictwa dla Azure Files i usługi Azure Blob Storage:

Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych Ograniczenia nazw protokołów SMB
• Nazwa obiektu blob musi mieć długość co najmniej jednego znaku i nie może zawierać więcej niż 1024 znaków.
• W nazwach obiektów blob jest rozróżniana wielkość liter.
• Znaki zastrzeżonego adresu URL muszą być poprawnie ucieczki.
• Nazwy obiektów blob mogą kończyć się ogranicznikiem katalogu wirtualnego, takim jak ukośnik (/)
• Niedozwolone znaki ścieżki adresu URL: punkty kodu, takie jak \uE000, podczas gdy prawidłowe w nazwach plików NTFS, nie są prawidłowymi znakami Unicode. Ponadto niektóre znaki ASCII lub Unicode, takie jak znaki sterujące (0x00 do 0x1F), również nie są dozwolone. Aby uzyskać reguły dotyczące ciągów Unicode w protokole HTTP/1.1 , zobacz RFC 2616, Sekcja 2.2: Podstawowe reguły i RFC 3987.
• Długość nazwy ścieżki nie może przekraczać 32 760 znaków.
• Każdy składnik nazwy ścieżki (plik/katalog) może mieć długość nie więcej niż 255 znaków.
• Nazwa ścieżki składa się z co najmniej jednego składnika nazwy ścieżki oddzielonego znakiem ukośnika odwrotnego (\).
• Nazwa ścieżki zachowuje wielkość liter i nie uwzględnia wielkości liter (dwie nazwy różniące się tylko w przypadku, gdy nie są dozwolone).
• Nie może mieć ścieżki katalogu, która jest taka sama jak ścieżka pliku.
• Następujące znaki są niedozwolone w nazwie składnika: \ / : ¦ < > * ? "
• Znaki sterujące w zakresie 0x00 przez 0x1F, włącznie, są niedozwolone w nazwie udziału.

Nazwy ścieżek

Nazwa ścieżki składa się z co najmniej jednego składnika nazwy ścieżki (katalogu lub nazwy pliku) oddzielonego znakiem ukośnika (/). Wszystkie składniki nazwy ścieżki inne niż składnik nazwy ostatniej ścieżki oznaczają katalogi. Ostatni składnik nazwy ścieżki określa katalog lub plik. Obowiązują następujące reguły nazewnictwa:

  • Nazwa ścieżki może mieć długość nie więcej niż 2048 znaków. Poszczególne składniki ścieżki mogą mieć maksymalnie 255 znaków.
  • Nazwa ścieżki składa się z co najmniej jednego składnika nazwy ścieżki oddzielonego znakiem ukośnika (/).
  • Głębokość podkatalogów w ścieżce nie może przekraczać 250.
  • Nie można użyć tej samej nazwy dla pliku i katalogu, który współużytkuje ten sam katalog nadrzędny. Na przykład plik i katalog o każdej nazwie data nie mogą istnieć w tej samej ścieżce nadrzędnej.

Nazwy metadanych

Metadane udziału lub zasobu pliku są przechowywane jako pary nazwa-wartość skojarzone z zasobem. Nazwy metadanych muszą być zgodne z regułami nazewnictwa identyfikatorów języka C#.

Należy pamiętać, że nazwy metadanych zachowują wielkość liter, z którą zostały utworzone, ale nie są uwzględniane wielkości liter podczas ustawiania lub odczytywania. Jeśli co najmniej dwa nagłówki metadanych o tej samej nazwie są przesyłane dla zasobu, usługa Azure File zwraca kod stanu 400 (Nieprawidłowe żądanie).

Składnia identyfikatora URI zasobu

Każdy zasób ma odpowiedni podstawowy identyfikator URI, który odwołuje się do samego zasobu. W przypadku konta magazynu podstawowy identyfikator URI zawiera tylko nazwę konta:

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

W przypadku udziału podstawowy identyfikator URI zawiera nazwę konta i nazwę udziału:

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

W przypadku katalogu podstawowy identyfikator URI zawiera nazwę konta, nazwę udziału i ścieżkę katalogu:

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

W przypadku pliku podstawowy identyfikator URI zawiera nazwę konta, nazwę udziału i ścieżkę pliku:

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  

Zobacz też