Экспорт (0) Печать
Развернуть все
Эта тема еще не получила оценку - Оценить эту тему

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

Обновлено: Ноябрь 2014 г.

В этом разделе описываются правила именования и обращения к контейнерам, большим двоичным объектам, метаданным и моментальным снимкам. Учетная запись хранилища может содержать нуль или больше контейнеров. Контейнер содержит свойства, метаданные и нуль или больше BLOB-объектов. Большой двоичный объект — это любая сущность, состоящая из двоичных данных, свойств и метаданных.

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

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

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

ImportantВажно!
Имена большого двоичного объекта и контейнера передаются в службу BLOB-объектов в URL-адресе. Некоторые символы необходимо перекодировать (в последовательность с процентом) для использования в URL-адресе. При этом используется кодировка UTF-8 (рекомендуется) или многобайтовая кодировка (MBCS). Перекодировка производится автоматически при использовании библиотек Windows Azure .NET или создании объекта Uri, который содержит имя контейнера или большого двоичного объекта. Однако есть некоторые символы, которые недопустимы в URL-адресе, даже будучи перекодированы. Эти символы не могут содержаться в имени большого двоичного объекта и контейнера. Кодовые точки вроде \ uE000 допустимы в NTFS-именах, но не являются допустимыми символами Юникода, поэтому их использовать нельзя. Кроме того, некоторые символы ASCII и Юникода, например управляющие символы (от 0x00 до 0x1F, \u0081 и т. д.), также не являются допустимыми. Правила, касающиеся Юникод-строк в HTTP/1.1, см. в следующем разделе:

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

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

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

  2. Каждому символу тире (-) должен сразу предшествовать или следовать символ буквы или цифры; последовательные тире в именах контейнеров не разрешены.

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

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

Имена больших двоичных объектов

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

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

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

  • /a

  • /a.txt

  • /a/b

  • /a/b.txt

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

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

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

Обратите внимание, что имена метаданных сохраняют регистр, с которым они были созданы, однако при задании и чтении регистр не учитывается. Если в ресурс отправляются два или более заголовка метаданных с одним именем, то служба 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). Дополнительные сведения см. в разделе Working with the Root Container (REST API). Следующие URI-адреса указывают на большой двоичный объект в корневом контейнере.


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

Моментальные снимки больших двоичных объектов

Моментальный снимок — это версия большого двоичного объекта только для чтения. Содержит все данные объекта на момент создания снимка. Моментальные снимки можно использовать для создания резервной копии или контрольной точки большого двоичного объекта. Имя моментального снимка большого двоичного объекта включает базовый URI-адрес объекта и значение date-time, которое показывает время создания снимка.

Например, предположим, что объект имеет следующий URI-адрес:

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

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

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

Клиентская библиотека .NET может перечислять моментальные снимки как объекты CloudBlob при вызове метода ListBlobs с аргументом BlobListingDetails, которому задано значение Snapshots.

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Показ:
© 2014 Microsoft. Все права защищены.