Именование общих папок, каталогов, файлов и метаданных и ссылки на нее

Учетная запись хранения может содержать ноль или более общих папок Azure. Общий ресурс содержит свойства, метаданные и ноль или больше файлов или каталогов. Каталог содержит свойства и ноль или больше файлов или каталогов. Файл — это любая сущность, состоящая из двоичных данных, свойств и метаданных.

Имена ресурсов

Универсальный код ресурса (URI) для ссылки на общую папку, каталог или файл должен быть уникальным. В пределах одной учетной записи хранения каждый общий ресурс должен иметь уникальное имя. Каждый файл в пределах одного общего ресурса или каталога также должен иметь уникальное имя.

При попытке создать общий ресурс, каталог или файл с именем, которое нарушает правила именования, запрос завершается ошибкой с кодом состояния 400 (неправильный запрос).

Имена общих ресурсов

Правила в отношении имен общих ресурсов файловой службы более строгие, чем предписывается протоколом SMB для имен общих ресурсов SMB. Это позволяет использовать одинаковые соглашения об именовании контейнеров и общих ресурсов в службе BLOB-объектов и файловой службе. В отношении именования общих ресурсов действуют перечисленные ниже ограничения.

  • Имя общего ресурса должно быть допустимым DNS-именем.
  • Имена общих ресурсов должны начинаться с буквы или цифры и могут содержать только буквы, цифры и дефис/минус (-).
  • Каждый дефис или минус (-) должен быть непосредственно перед символом, за которым следует буква или цифра; Последовательные дефисы не допускаются в именах общих ресурсов.
  • Все буквы в имени общего ресурса должны быть строчными.
  • Имя общего ресурса должно быть длиной от 3 до 63 символов.

В следующей таблице сравниваются ограничения именования для Файлы Azure и хранилища BLOB-объектов Azure.

Именование контейнеров, больших двоичных объектов и метаданных и ссылка на них Ограничения имени общего ресурса SMB
• Имя контейнера должно быть допустимым DNS-именем.
• Имена контейнеров должны начинаться с буквы или цифры и могут содержать только буквы, цифры и дефис/минус (-).
• Каждый дефис или минус (-) должен быть непосредственно перед символом, за которым следует буква или цифра; Последовательные дефисы не допускаются в именах контейнеров.
• Все буквы в имени контейнера должны быть строчными.
• Имена контейнеров должны содержать от 3 до 63 символов.
• Длина имени общей папки не должна превышать 80 символов.
• Следующие символы являются недопустимыми в имени общей папки: \ / [ ] : ¦ < > + = ; , * ? "
• Управляющие символы в диапазоне 0x00 до 0x1F включительно являются незаконными в имени общего ресурса.
• Все остальные символы Юникода являются законными.
• Имена сохраняют регистр и не учитывают регистр.

Имена каталогов и файлов

Файлы Azure применяет следующие правила именования для имен каталогов и файлов:

  • В именах каталогов и файлов регистр сохраняется, но не учитывается.
  • Длина имен компонентов каталогов и файлов не должна превышать 255 символов.
  • Имена каталогов не могут заканчиваться символом косой черты (/). Если это предусмотрено, она будет автоматически удалена.
  • Имена файлов не должны заканчиваться косой чертой (/).
  • Зарезервированные веб-адреса должны быть надлежащим образом экранированы.
  • Следующие символы не допускаются: " \ / : | < > * ?
  • Запрещены недопустимые символы для URL-пути. Такие кодовые точки, как \uE000и допустимые в именах файлов NTFS, не являются допустимыми символами Юникода. Кроме того, некоторые символы ASCII или Юникода, такие как управляющие символы (0x00 до 0x1F), также не допускаются. Правила, регулирующие строки Юникода в HTTP/1.1, см. в статье RFC 2616, Раздел 2.2. Основные правила и RFC 3987.
  • Недопустимые символы Юникода (называемые недопустимыми суррогатными парами) не поддерживаются.
  • Не допускаются следующие имена файлов: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, PRN, AUX, NUL, CON, CLOCK$, символ точки (.) и два точечных символа (..).
  • Начиная с версии 2021-12-02 имена каталогов и файлов поддерживают символы U+FFFE и U+FFFF во всех операциях. Эти символы также поддерживаются протоколами SMB и REST. Операции list Directory и Files and List Handles потребуют специальной обработки для этих символов, как указано в соответствующей документации.

По умолчанию символы точки (.) в конце имен каталогов и файлов в URL-адресах запросов игнорируются или пропускаются.

  • Например, если создается файл с именем file1... , точки в конце будут игнорироваться, а файл с именем file1 будет создан. То же самое относится к каталогам в пути. Если запрос на создание файла содержит путь \Dir1\Dir2…\File1 , файл будет создан по адресу \Dir1\Dir2\File1.
  • Однако начиная с версии 2022-11-02 поведение по умолчанию можно переопределить, задав для заголовка x-ms-allow-trailing-dot значение true в запросе URL-адреса.
  • Например, если вы хотите создать файл с именем file1... и включить конечные точки, x-ms-allow-trailing-dot следует включить в заголовок запроса и задать как true. То же самое относится и к созданию имен каталогов.
  • В случае запроса на копирование файла, если вы хотите включить конечные точки в имя исходного x-ms-source-allow-trailing-dot файла, заголовок должен иметь значение true. Дополнительные сведения проверка доступные параметры заголовка для каждого отдельного REST API.

В следующей таблице сравниваются ограничения именования для Файлы Azure и хранилища BLOB-объектов Azure.

Именование контейнеров, больших двоичных объектов и метаданных и ссылка на них Ограничения имен протокола SMB
• Имя большого двоичного объекта должно содержать по крайней мере один символ и не может содержать более 1024 символов.
• В именах BLOB-объектов учитывается регистр.
• Зарезервированные символы URL-адреса должны быть правильно экранированы.
• Имена BLOB-объектов могут заканчиваться разделителем виртуального каталога, например косой чертой (/).
• Недопустимые символы пути к URL-адресу не допускаются: кодовые точки, такие как \uE000, хотя и допустимы в именах файлов NTFS, не являются допустимыми символами Юникода. Кроме того, некоторые символы ASCII или Юникода, такие как управляющие символы (0x00 для 0x1F), также не допускаются. Правила, регулирующие строки Юникода в HTTP/1.1, см. в статье RFC 2616, Раздел 2.2. Основные правила и RFC 3987.
• Длина имени пути не может превышать 32 760 символов.
• Каждый компонент имени пути (файл или каталог) может содержать не более 255 символов.
• Имя пути состоит из одного или нескольких компонентов имени пути, разделенных символом обратной косой черты (\).
• Имя пути сохраняет регистр и не учитывает регистр (два разных имени, отличающихся только регистром, не допускаются).
• Не удается создать путь к каталогу, который совпадает с путем к файлу.
• Следующие символы являются недопустимыми в имени компонента: \ / : ¦ < > * ? "
• Управляющие символы в диапазоне 0x00 до 0x1F включительно являются незаконными в имени общего ресурса.

Имена путей

Имя пути состоит из одного или нескольких компонентов имени пути (имя каталога или файла), разделенных символом косой черты (/). Все компоненты имени пути, отличные от компонента имени последнего пути, обозначают каталоги. Последний компонент пути означает каталог или файл. Действуют перечисленные ниже правила именования.

  • Длина имени пути не может превышать 2048 символов. Отдельные компоненты в пути могут содержать не более 255 символов.
  • Имя пути состоит из одного или нескольких компонентов имени пути, разделенных символом косой черты (/).
  • Глубина подкаталогов в пути не может превышать 250.
  • Одно и то же имя нельзя использовать для файла и каталога, который использует один и тот же родительский каталог. Например, файл и каталог с именем data не могут существовать в одном родительском пути.

Имена метаданных

Метаданные общего ресурса или файла хранятся как пары "имя-значение", связанные с ресурсом. Имена метаданных должны соответствовать правилам именования для идентификаторов C#.

Обратите внимание, что имена метаданных сохраняют регистр, с которым они были созданы, однако при задании и чтении регистр не учитывается. Если для ресурса фиксируются два или более заголовков метаданных с одним именем, то файловая служба Azure возвращает код состояния 400 (неправильный запрос).

Синтаксис URI ресурса

Каждый ресурс имеет соответствующий базовый URI-адрес, который ссылается на сам ресурс. Для учетной записи хранения базовый URI-адрес содержит только имя учетной записи:

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

Для общего ресурса базовый код URI содержит имя учетной записи и имя общего ресурса:

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

Для каталога базовый код URI содержит имя учетной записи, имя общего ресурса и путь к каталогу:

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

Для файла базовый код URI содержит имя учетной записи, имя общего ресурса и путь к файлу:

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  

См. также раздел