Именование и ссылка на контейнеры, большие двоичные объекты и метаданные

В этом разделе описывается именование и ссылка на контейнеры, большие двоичные объекты, метаданные и моментальные снимки. Учетная запись хранения может содержать ноль или больше контейнеров. Контейнер содержит свойства, метаданные и ноль или несколько больших двоичных объектов. Если у вашей учетной записи есть иерархическое пространство имен, контейнер также может содержать ноль или несколько каталогов, и эти каталоги могут содержать ноль или несколько БОЛЬШИХ двоичных объектов. Большой двоичный объект — это любая отдельная сущность, состоящая из двоичных данных, свойств и метаданных.

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

Универсальный код ресурса (URI) для ссылки на контейнер или большой двоичный объект должен быть уникальным. Так как каждое имя учетной записи уникально, две учетные записи могут иметь контейнеры с одинаковым именем. Однако в заданной учетной записи хранения каждый контейнер должен иметь уникальное имя. Каждый большой двоичный объект в заданном контейнере также должен иметь уникальное имя в этом контейнере.

Если вы пытаетесь создать контейнер или большой двоичный объект с именем, которое нарушает правила именования, запрос завершится ошибкой с кодом состояния 400 (недопустимый запрос).

Имена BLOB-объектов и контейнеров передаются службе BLOB-объектов в URL-адресе. Для отображения определенных символов в URL-адресе необходимо закодировать определенные символы, используя UTF-8 (предпочтительный) или MBCS. Эта кодировка возникает автоматически при использовании клиентских библиотек службы хранилища Azure. Однако существуют определенные символы, которые недопустимы в путях URL даже при кодировании. Если эти символы отображаются в именах БОЛЬШИХ двоичных объектов или контейнеров, запрос может завершиться ошибкой. Список этих символов см. в символов Юникода, которые не рекомендуется использовать в именах контейнеров или BLOB-объектов.

Кодовые точки, такие как \uE000, в то время как допустимые в именах файлов NTFS, являются недопустимыми символами Юникода, поэтому их нельзя использовать. Кроме того, некоторые символы ASCII или Юникод, такие как символы управления (0x00 для 0x1F, \u0081и т. д.), также не допускаются.

Дополнительные правила, управляющие строками Юникода в HTTP/1.1, см. в RFC 2616, раздел 2.2. Основные правила и RFC 3987.

Имена контейнеров

Имя контейнера должно быть допустимым DNS-именем, соответствующим следующим правилам именования:

  • Имена контейнеров должны начинаться или заканчиваться буквами или цифрами, а также содержать только буквы, цифры и дефис/минус (-).

  • Каждый дефис/минус (-) должен быть немедленно предшествуем и за ним следует буква или число; Последовательные дефисы не допускаются в именах контейнеров.

  • Все буквы в имени контейнера должны быть строчными буквами.

  • Имена контейнеров должны иметь длину от 3 до 63 символов.

Имена каталогов

Если у вашей учетной записи есть иерархическое пространство имен, то имя каталога должно соответствовать следующим правилам именования:

  • Имя каталога может содержать любое сочетание символов.

  • Имя каталога должно быть по крайней мере одним символом длиной и не может превышать 1024 символов.

  • Имена каталогов чувствительны к регистру.

  • Зарезервированные символы URL-адреса должны быть правильно экранированы.

Заметка

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

снимок экрана: обратная косая черта не разрешена.

Имена BLOB-объектов

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

  • Имя большого двоичного объекта может содержать любое сочетание символов.

  • Имя большого двоичного объекта должно иметь по крайней мере один символ длиной и не может превышать 1024 символов для больших двоичных объектов в службе хранилища Azure.

    Эмулятор службы хранилища Azure поддерживает имена BLOB-объектов до 256 символов. Дополнительные сведения см. в статье Использование эмулятора службы хранилища Azure для разработки и тестирования.

  • Имена BLOB-объектов чувствительны к регистру.

  • Зарезервированные символы URL-адреса должны быть правильно экранированы.

  • Существуют ограничения на количество сегментов пути, состоящих из имени большого двоичного объекта. Сегмент пути — это строка между последовательными символами разделителя (например, косой чертой /), соответствующей каталогу или виртуальному каталогу. К именам BLOB-объектов применяются следующие ограничения сегмента пути:

    • Если учетная запись хранения не включена иерархическое пространство имен, количество сегментов пути, состоящих из имени большого двоичного объекта, не может превышать 254.
    • Если у учетной записи хранения включено иерархическое пространство имен, количество сегментов пути, состоящих из имени большого двоичного объекта, не может превышать 63 (включая сегменты пути для имени учетной записи и имени контейнера).

Заметка

Избегайте имен BLOB-объектов, заканчивающихся точкой (.), косой чертой (/), обратной косой чертой (\) или последовательностью или сочетанием двух. Сегменты пути не должны заканчиваться точкой (.).

снимок экрана: косая черта не разрешена.

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

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

При перечислении больших двоичных объектов можно воспользоваться преимуществами символа разделителя.

Ключ метаданных и имена значений

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

  • Должно начинаться с буквы или подчеркивания

  • Любые следующие символы могут быть буквами, цифрами или символами подчеркивания

  • Имя ключа метаданных должно быть допустимым ASCII

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

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

Каждый ресурс имеет соответствующий базовый URI, который относится к самому ресурсу.

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

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

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

https://myaccount.blob.core.windows.net/mycontainer

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

https://myaccount.blob.core.windows.net/mycontainer/myblob

У учетной записи хранения может быть корневой контейнер, контейнер по умолчанию, который может быть опущен из URI. Большой двоичный объект в корневом контейнере можно ссылаться без именования контейнера, или корневой контейнер можно явно ссылаться на его имя ($root). Дополнительные сведения см. в работе с корневым контейнером. Следующие URI относятся к большому двоичному объекту в корневом контейнере:

https://myaccount.blob.core.windows.net/myblob  
https://myaccount.blob.core.windows.net/$root/myblob  

Моментальные снимки BLOB-объектов

Моментальный снимок — это версия большого двоичного объекта, сохраненного только для чтения, так как она была в момент создания моментального снимка. Моментальные снимки можно использовать для создания резервной копии или контрольной точки большого двоичного объекта. Имя большого двоичного объекта моментального снимка включает базовый универсальный код ресурса (URI) BLOB-объектов, а также значение даты и времени, указывающее, когда был создан моментальный снимок.

Например, предположим, что большой двоичный объект имеет следующий универсальный код ресурса (URI):

https://myaccount.blob.core.windows.net/mycontainer/myblob

URI для моментального снимка этого большого двоичного объекта формируется следующим образом:

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

В следующей таблице представлен список символов Юникода, которые не рекомендуется использовать в именах контейнеров или BLOB-объектов. Эти символы, используемые в сочетании с другими символами в этом списке, могут завершиться сбоем декодирования UTF-8 или MBCS, что приводит к сбою запроса к службе BLOB-объектов.

Символ Юникода
U+0080
U+0082
U+0083
U+0084
U+0085
U+0086
U+0087
U+00888
U+0089
U+008A
U+008B
U+008C
U+008E
U+0091
U+0092
U+0093
U+0094
U+0095
U+0096
U+0097
U+0098
U+0099
U+009A
U+009B
U+009C
U+009E
U+009F
U+FDD1
U+FDD2
U+FDD3
U+FDD4
U+FDD5
U+FDD6
U+FDD7
U+FDD8
U+FDD9
U+FDDA
U+FDDB
U+FDDC
U+FDDE
U+FDDF
U+FDE0
U+FDE1
U+FDE2
U+FDE3
U+FDE4
U+FDE5
U+FDE6
U+FDE7
U+FDE8
U+FDE9
U+FDEA
U+FDEB
U+FDEC
U+FDED
U+FDEE
U+FDEF
U+FFF0
U+FFF1
U+FFF2
U+FFF3
U+FFF4
U+FFF5
U+FFF6
U+FFF7
U+FFF8
U+FFF9
U+FFFA
U+FFFB
U+FFFC
U+FFFD
U+FFFE
U+FFFF
U+1FFFE
U+1FFFF
U+2FFFE
U+2FFFF
U+3FFFE
U+3FFFF
U+5FFFE
U+5FFFF
U+6FFFE
U+6FFFF
U+7FFFE
U+7FFFF
U+9FFFE
U+9FFFF
U+AFFFE
U+AFFFF
U+BFFFE
U+BFFFF
U+DFFFE
U+DFFFF
U+EFFFE
U+EFFFF
U+FFFFE
U+FFFFF

См. также