Именование и ссылка на общие папки, каталоги, файлы и метаданные
Учетная запись хранения может содержать ноль или больше общих папок Azure. Общая папка содержит свойства, метаданные и ноль или несколько файлов или каталогов. Каталог содержит свойства и ноль или больше файлов или каталогов. Файл — это любая отдельная сущность, состоящая из двоичных данных, свойств и метаданных.
Универсальный код ресурса (URI) для ссылки на общий ресурс, каталог или файл должен быть уникальным. В заданной учетной записи хранения каждый общий ресурс должен иметь уникальное имя. Каждый файл в заданной общей папке или каталоге также должен иметь уникальное имя в этой общей папке или каталоге.
Если вы пытаетесь создать общую папку, каталог или файл с именем, которое нарушает правила именования, запрос завершается ошибкой с кодом состояния 400 (недопустимый запрос).
Правила для имен общих папок файловой службы более строги, чем правила, предписанные протоколом SMB для имен общих папок SMB, чтобы службы BLOB-объектов и файловых служб могли совместно использовать аналогичные соглашения об именовании контейнеров и общих папок. Ограничения именования для общих папок приведены следующим образом:
- Имя общей папки должно быть допустимым DNS-именем.
- Имена общих ресурсов должны начинаться с буквы или номера, а также содержать только буквы, цифры и символ дефиса или минуса (-).
- Каждый дефис/минус (-) должен быть немедленно предшествуем и за ним следует буква или число; Последовательные дефисы не допускаются в именах общих ресурсов.
- Все буквы в имени общей папки должны быть строчными буквами.
- Имена общих файлов должны иметь длину от 3 до 63 символов.
В следующей таблице сравниваются ограничения именования для файлов Azure и хранилища BLOB-объектов Azure:
именование и ссылки на контейнеры, большие двоичные объекты и метаданные | ограничения имен общего ресурса SMB |
---|---|
• Имя контейнера должно быть допустимым DNS-именем. • Имена контейнеров должны начинаться с буквы или числа, и могут содержать только буквы, цифры и дефис/минус (-). • Каждый дефис/минус (-) символ должен быть немедленно предшествует и за ним следует буква или число; Последовательные дефисы не допускаются в именах контейнеров. • Все буквы в имени контейнера должны быть строчными буквами. • Имена контейнеров должны содержать от 3 до 63 символов. |
• Имя общей папки должно содержать не более 80 символов. • Следующие символы являются незаконными в имени общей папки: \ / [ ] : ¦ < > + = ; , * ? " • Контрольные символы в диапазоне 0x00 через 0x1F, включительно, являются незаконными в имени общей папки. • Все остальные символы Юникода являются законными. • Имена сохраняют регистр и не учитывает регистр. |
Файлы Azure применяют следующие правила именования для имен каталогов и файлов:
- Имена каталогов и файлов сохраняют регистр и не учитывает регистр.
- Имена компонентов каталога и файлов должны содержать не более 255 символов.
- Имена каталогов не могут заканчиваться символом косой черты (/). Если оно указано, оно будет автоматически удалено.
- Имена файлов не должны заканчиваться символом косой черты (/).
- Зарезервированные символы URL-адреса должны быть правильно экранированы.
- Недопустимы следующие символы:
" \ / : | < > * ?
- Недопустимые символы пути URL-адреса запрещены. Кодовые точки, такие как
\uE000
, в то время как допустимы в именах файлов NTFS, не являются допустимыми символами Юникода. Кроме того, некоторые символы ASCII или Юникода, такие как символы управления (0x00
для0x1F
), также не допускаются. Правила, управляющие строками Юникода в HTTP/1.1, см. RFC 2616, раздел 2.2. Основные правила и RFC 3987. - Недопустимые символы Юникода (называемые недопустимыми суррогатными парами) не поддерживаются.
- Следующие имена файлов не допускаются: LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT8, LPT9, COM2, COM2, COM3, COM5, COM5, COM6, COM7, COM8, COM8, COM8, PRN, AUX, NUL, CON, CLOCK$, dot символ (.) и два символа точки (.).
- Начиная с версии 2021-12-02, имена каталогов и файлов поддерживают символы U+FFFE и U+FFFF через все операции. Эти символы также поддерживаются с помощью протоколов SMB и REST. каталог и файлы списка и дескриптора списков требуют специальной обработки этих символов, как упоминалось в соответствующей документации.
По умолчанию для общих папок с включенным протоколом SMB символы точки (.) в конце имен каталогов и файлов в 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.
По умолчанию для общих папок с включенным протоколом NFS символы точки (.) в конце имен каталогов и файлов в URL-адресах запросов не игнорируются.
В следующей таблице сравниваются ограничения именования для файлов 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, включительно, являются незаконными в имени общей папки. |
Имя пути состоит из одного или нескольких компонентов имени пути (каталог или имя файла), разделенных символом косой черты (/). Все компоненты имени пути, отличные от компонента имени последнего пути, указывают каталоги. Компонент имени последнего пути обозначает каталог или файл. Применяются следующие правила именования:
- Имя пути не может превышать 2 048 символов. Отдельные компоненты в пути могут содержать не более 255 символов.
- Имя пути состоит из одного или нескольких компонентов имени пути, разделенных символом косой черты (/).
- Глубина подкаталогов в пути не может превышать 250.
- То же имя нельзя использовать для файла и каталога, который использует один и тот же родительский каталог. Например, файл и каталог, которые являются каждым именованным
data
, не могут существовать в одном родительском пути.
Метаданные для ресурса общей папки или файла хранятся в виде пар "имя-значение", связанных с ресурсом. Имена метаданных должны соответствовать правилам именования для идентификаторов C#.
Имена метаданных сохраняют регистр, с которым они были созданы, но не учитывают регистр при установке или чтении. Если для ресурса отправляются два или более заголовков метаданных с одинаковым именем, служба файлов Azure возвращает код состояния 400 (недопустимый запрос).
Каждый ресурс имеет соответствующий базовый 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