Прочитать на английском

Поделиться через


Узнайте, как приложения взаимодействуют с данными в Blob Storage

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

Типы ресурсов Blob-хранилища

Клиентские библиотеки Azure Blob Storage позволяют взаимодействовать с тремя типами ресурсов, предоставляемыми службой хранения.

На следующей схеме показана связь между этими ресурсами:

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

Учетные записи хранения

Учетная запись хранения предоставляет уникальное пространство имен в Azure для ваших данных. Каждый объект, который вы храните в службе хранилища Azure, имеет адрес, содержащий уникальное имя учетной записи. Сочетание имени учетной записи и конечной точки Blob-хранилища формирует базовый адрес для объектов в учетной записи.

Например, если учетная запись хранения называется sampleaccount, то конечная точка по умолчанию для Blob-хранилища:

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

Дополнительные сведения о типах учетных записей хранения см. в обзоре учетной записи хранения Azure.

Контейнеры

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

Универсальный код ресурса (URI) для контейнера аналогичен:

https://sampleaccount.blob.core.windows.net/sample-container

Для получения дополнительных сведений об именовании контейнеров см. раздел «Именование и ссылки на контейнеры, блобы и метаданные».

Блобсы

Служба хранилища Azure поддерживает три типа объектов BLOB:

  • Блочные большие двоичные объекты хранят текстовые и двоичные данные. Блобы-блоки состоят из блоков данных, которыми можно управлять отдельно. Блочные блобы могут хранить до приблизительно 190,7 ТиБ.
  • Дополняемые двоичные объекты состоят из блоков, как обычные блочные объекты, но оптимизированы для операций добавления. Блобы добавления идеально подходят для сценариев, таких как ведение журналов данных с виртуальных машин.
  • Страничные BLOB-объекты хранят файлы с произвольным доступом размером до 8 ТиБ. Дополнительные сведения о страничных BLOB-объектах см. в статье "Обзор страничных BLOB-объектов Azure"

Дополнительные сведения о различных типах BLOB-объектов см. в разделе Общие сведения о блобах блоков, блобах добавления и блобах страниц.

Универсальный идентификатор ресурса (URI) для BLOB аналогичен следующему:

https://sampleaccount.blob.core.windows.net/sample-container/sample-blob

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

Работа с ресурсами данных с помощью пакета SDK Для Azure

Пакеты SDK Azure содержат библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API с помощью знакомых парадигм языка программирования. Пакеты SDK предназначены для упрощения взаимодействия между приложением и ресурсами Azure.

В редких случаях приложения, обновленные до последней бета-версии или общедоступной версии SDK, могут получить сообщение об ошибке InvalidHeaderValue. Эта проблема может возникнуть при использовании любой из библиотек хранения данных. Сообщение об ошибке похоже на следующий пример:

HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
Content-Length: 328
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: <REMOVED>
Date: Fri, 19 May 2023 17:10:33 GMT
 
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers is not in the correct format.
RequestId:<REMOVED>
Time:2023-05-19T17:10:34.2972651Z
</Message>
<HeaderName>x-ms-version</HeaderName><HeaderValue>yyyy-mm-dd</HeaderValue>
</Error>

Если вы обновили SDK до последней бета-версии или общей доступной версии и сталкиваетесь с этой ошибкой, рекомендуется понизить версию до предыдущей общей доступной версии SDK, чтобы посмотреть, решится ли проблема.

Сведения о пакете SDK можно просмотреть в следующих расположениях:

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

В клиентских библиотеках хранилища BLOB-объектов Azure каждый тип ресурса представлен одним или несколькими связанными классами. Эти классы предоставляют операции для работы с ресурсом службы хранилища Azure.

В следующей таблице перечислены основные классы, а также краткое описание:

Класс Описание
BlobServiceClient Представляет учетную запись для хранения и предоставляет операции для получения и настройки свойств учетной записи, а также для работы с контейнерами объектов BLOB в учетной записи для хранения.
BlobContainerClient Представляет конкретный контейнер для файлов BLOB и предоставляет операции для работы с контейнером и BLOB-объектами внутри.
BlobClient Представляет конкретный двоичный объект и предоставляет общие операции для работы с ним, включая загрузку, скачивание, удаление и создание моментальных снимков.
AppendBlobClient Представляет блобы добавления и предоставляет операции, специфичные для них, например, добавление данных логов.
BlockBlobClient Представляет блок-блоб и предоставляет операции, относящиеся к блок-блобам, например, подготовке к и последующему закреплению блоков данных.

Следующие пакеты содержат классы, используемые для работы с ресурсами данных хранилища объектов Blob:

  • Azure.Storage.Blobs: содержит основные классы (клиентские объекты), которые можно использовать для работы со службой, контейнерами и BLOB-объектами.
  • Azure.Storage.Blobs.Specialized: содержит классы, которые можно использовать для выполнения операций, относящихся к типу BLOB-объектов, например блочных BLOB-объектов.
  • Azure.Storage.Blobs.Models: все остальные вспомогательные классы, структуры и типы перечислений.

Дальнейшие действия

Работа с ресурсами Azure с помощью пакета SDK начинается с создания экземпляра клиента. Дополнительные сведения о создании и управлении клиентскими объектами см. в статье "Создание клиентских объектов и управление ими", взаимодействующих с ресурсами данных.


Дополнительные ресурсы

События

MCP DevDays

27 июл., 04 - 27 июл., 04

Ускорение производительности, создание будущего

Register Today