Именование общих папок, каталогов, файлов и метаданных и ссылки на нее
Учетная запись хранения может содержать ноль или более общих папок 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