blob объект что это

Общие сведения о хранилище BLOB-объектов Azure

Хранилище BLOB-объектов Azure — это решение корпорации Майкрософт для хранения объектов в облаке. Хранилище BLOB-объектов оптимизировано для хранения огромных объемов неструктурированных данных. Неструктурированные данные — это данные, которые не соответствуют определенной модели данных или определению, например текстовых или двоичных данных.

Сведения о хранилище BLOB-объектов

Хранилище BLOB-объектов предназначено для следующих задач:

Пользователи или клиентские приложения могут получить доступ к объектам в хранилище BLOB-объектов через HTTP/HTTPS из любой точки мира. К объектам в хранилище BLOB-объектов можно обращаться через REST API службы хранилища Azure, Azure PowerShell, Azure CLI или клиентскую библиотеку службы хранилища Azure. Клиентские библиотеки доступны для разных языков, включая:

Сведения об Azure Data Lake Storage 2-го поколения

Хранилище BLOB-объектов поддерживает Azure Data Lake Storage 2-го поколения, решение аналитики больших данных корпорации Майкрософт, предназначенное для облака. Azure Data Lake Storage 2-го поколения предлагает иерархическую файловую систему, а также преимущества хранилища BLOB-объектов:

Общие сведения об Azure Data Lake Storage 2-го поколения см. в этой статье.

Ресурсы хранилища BLOB-объектов

В хранилище BLOB-объектов предлагается три типа ресурсов:

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

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

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

Например, если учетная запись хранения имеет имя mystorageaccount, конечной точкой по умолчанию для хранилища BLOB-объектов будет:

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

Контейнеры

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

Все знаки в имени контейнера должны быть строчными. Дополнительные сведения о контейнерах именования см. в статье Naming and Referencing Containers, Blobs, and Metadata (Именование контейнеров, больших двоичных объектов и метаданных и ссылка на них).

BLOB-объекты

Хранилище Azure поддерживает три типа больших двоичных объектов.

Дополнительные сведения о различных больших двоичных объектах см. в статье Understanding Block Blobs, Append Blobs, and Page Blobs (Основные сведения о блочных, добавочных и страничных BLOB-объектах).

Перемещение данных в хранилище BLOB-объектов

Для перемещения существующих данных в хранилище BLOB-объектов существует ряд решений:

Источник

Blob объект что это

ArrayBuffer и бинарные массивы являются частью ECMA-стандарта и, соответственно, частью JavaScript.

Кроме того, в браузере имеются дополнительные высокоуровневые объекты, описанные в File API.

Благодаря type мы можем загружать и скачивать Blob-объекты, где type естественно становится Content-Type в сетевых запросах.

Конструктор имеет следующий синтаксис:

Мы можем получить срез Blob, используя:

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

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

Blob как URL

Давайте начнём с простого примера. При клике на ссылку мы загружаем динамически генерируемый Blob с hello world содержимым как файл:

Далее простой пример создания «на лету» и загрузки Blob-объекта, без использования HTML:

Вот как выглядит сгенерированный URL:

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

Ссылка в карте соответствия автоматически удаляется при выгрузке документа, после этого также освобождается память. Но если приложение имеет длительный жизненный цикл, это может произойти не скоро. Таким образом, если мы создадим URL для Blob, он будет висеть в памяти, даже если в нём нет больше необходимости.

URL.revokeObjectURL(url) удаляет внутреннюю ссылку на объект, что позволяет удалить его (если нет другой ссылки) сборщику мусора, и память будет освобождена.

Blob to base64

Альтернатива URL.createObjectURL – конвертация Blob-объекта в строку с кодировкой base64.

Эта кодировка представляет двоичные данные в виде строки с безопасными для чтения символами в ASCII-кодах от 0 до 64. И что более важно – мы можем использовать эту кодировку для «data-urls».

Браузер декодирует строку и показывает смайлик:

Вот пример загрузки Blob при помощи base64:

Оба варианта могут быть использованы для создания URL с Blob. Но обычно URL.createObjectURL(blob) является более быстрым и безопасным.

Изображение в Blob

Мы можем создать Blob для изображения, части изображения или даже создать скриншот страницы. Что удобно для последующей загрузки куда-либо.

Операции с изображениями выполняются через элемент :

В примере ниже изображение просто копируется, но мы можем взять его часть или трансформировать его на canvas перед созданием Blob:

Или если вы предпочитаете async/await вместо колбэка:

Из Blob в ArrayBuffer

Но если нам нужна производительная низкоуровневая обработка, мы можем использовать ArrayBuffer из FileReader :

Итого

Это делает Blob удобным для операций загрузки/выгрузки данных, которые так часто используются в браузере.

Методы, которые выполняют сетевые запросы, такие как XMLHttpRequest, fetch и подобные, могут изначально работать с Blob так же, как и с другими объектами, представляющими двоичные данные.

Читайте также:  рекорд чилаут какая волна

Мы можем легко конвертировать Blob в низкоуровневые бинарные типы данных и обратно:

Источник

Что такое Blob и как извлекать обнаружение данных из Blob?

Окружающая среда

Где найти информацию об определениях, свойствах и использовании blobs

Не удалось определить, как использовать лямку с движком для выводов в OpenVINO™ инструментарии.

Более подробную информацию о blob можно найти в документации Blob.

Обратитесь к «Интеграции системы обработки выводов в вашем приложении для высококачественного описания процесса интеграции Движка обработки выводов в ваше приложение».

Вам нужна дополнительная помощь?

Оставьте отзыв

Отказ от ответственности

Все публикации и контент на этом веб-сайте регулируются Условиями использования Intel.com.

Содержание данной страницы представляет собой сочетание выполненного человеком и компьютерного перевода оригинального содержания на английском языке. Данная информация предоставляется для вашего удобства и в ознакомительных целях и не должна расцениваться как исключительная, либо безошибочная. При обнаружении каких-либо противоречий между версией данной страницы на английском языке и переводом, версия на английском языке будет иметь приоритет и контроль. Посмотреть английскую версию этой страницы.

Для работы технологий Intel может потребоваться специальное оборудование, ПО или активация услуг. // Ни один продукт или компонент не может обеспечить абсолютную защиту. // Ваши расходы и результаты могут отличаться. // Производительность зависит от вида использования, конфигурации и других факторов. // См. наши юридические уведомления и отказ от ответственности. // Корпорация Intel выступает за соблюдение прав человека и избегает причастности к их нарушению. См. Глобальные принципы защиты прав человека в корпорации Intel. Продукция и программное обеспечение Intel предназначены только для использования в приложениях, которые не приводят или не способствуют нарушению всемирно признанных прав человека.

Источник

Общие сведения о страничных BLOB-объектах Azure

Служба хранилища Azure предлагает три типа хранилища BLOB-объектов: блочные, добавочные и страничные BLOB-объекты. Блочные BLOB-объекты состоят из блоков и идеально подходят для хранения текстовых или двоичных файлов, а также для эффективной передачи больших файлов. Добавочные большие двоичные объекты также состоят из блоков, но они оптимизированы для операций добавления и поэтому полезны для сценариев ведения журнала. Страничные BLOB-объекты состоят из 512-байтовых страниц, общий размер которых не превышает 8 ТБ, и создаются для частых произвольных операций чтения и записи. Страничные BLOB-объекты являются основой дисков IaaS Azure. В этой статье рассматриваются возможности и преимущества страничных BLOB-объектов.

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

Основные возможности страничных BLOB-объектов Azure: интерфейс REST, устойчивость базового хранилища и возможности эффективной миграции в Azure. Подробнее эти возможности рассматриваются в следующем разделе. Кроме того, страничные BLOB-объекты Azure сейчас поддерживаются в хранилищах двух типов: класса Premium и Standard. Хранилище класса Premium разработано специально для рабочих нагрузок, требующих постоянной высокой производительности и минимальных задержек, благодаря чему страничные BLOB-объекты класса Premium идеально подходят для сценариев с высокими требованиями к производительности хранилища. Хранилище класса Standard более выгодно использовать для рабочих нагрузок без особых требований к задержкам.

Ограничения

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

Примеры вариантов использования

Рассмотрим несколько вариантов использования страничных BLOB-объектов, начиная с дисков IaaS Azure. Страничные BLOB-объекты Azure — это основа платформы виртуальных дисков IaaS Azure. Диски ОС и диски данных Azure реализуются как виртуальные диски, где данные надежно хранятся на платформе службы хранилища Azure, а затем доставляются на виртуальные машины для достижения максимальной производительности. Диски Azure хранятся в формате VHD Hyper-V и в виде страничного BLOB-объекта в службе хранилища Azure. Помимо использования виртуальных дисков для виртуальных машин IaaS Azure, страничные BLOB-объекты также поддерживают сценарии PaaS и DBaaS, например службу базы данных SQL Azure, в которой сейчас эти объекты используются для хранения данных SQL, обеспечивая выполнение произвольных операций чтения и записи для базы данных. Еще один пример: при использовании службы PaaS для общего доступа к мультимедиа для приложений совместного редактирования видео страничные BLOB-объекты обеспечивают быстрый доступ к произвольным расположениям в мультимедиа. Они также предоставляют возможность нескольким пользователям быстро и эффективно редактировать и объединять одно и то же мультимедиа.

Корпорация Майкрософт в своих основных службах, таких как Azure Site Recovery и Azure Backup, а также многие сторонние разработчики реализовали ведущие в отрасли инновационные возможности с помощью интерфейса REST страничного BLOB-объекта. Ниже приведены уникальные сценарии, реализованные в Azure.

Два типа хранилища, предоставляемые для страничных BLOB-объектов, имеют разные модели ценообразования. Страничные BLOB-объекты уровня Premium оплачиваются так же, как управляемые диски, но страничные BLOB-объекты уровня Standard тарифицируются пропорционально используемому размеру и за каждую транзакцию. Дополнительные сведения см. на странице цен на страничные BLOB-объекты Azure.

Возможности страничных BLOB-объектов

REST API

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

Читайте также:  какой номер последнего тиража жилищной лотереи

Создание пустого страничного BLOB-объекта указанного размера

NET (пакет SDK версии 12).

Сначала получите ссылку на контейнер. Чтобы создать страничный BLOB-объект, вызовите метод GetPageBlobClient, а затем метод PageBlobClient.Create. Передайте в него максимальный размер создаваемого большого двоичного объекта. Этот размер должен быть кратен 512 байтам.

.NET (пакет SDK версии 11).

Для создания страничного BLOB-объекта сначала создается объект CloudBlobClient с базовым URI доступа к хранилищу BLOB-объектов для вашей учетной записи хранения (pbaccount на рис. 1) и объектом StorageCredentialsAccountAndKey, как показано в приведенном ниже примере. В примере демонстрируется создание ссылки на объект CloudBlobContainer, а затем создание контейнера (testvhds), если он еще не существует. После этого с помощью объекта CloudBlobContainer следует создать ссылку на объект CloudPageBlob, указав имя страничного BLOB-объекта (os4.vhd), к которому необходимо получить доступ. Для создания страничного BLOB-объекта необходимо вызвать CloudPageBlob.Create, передав максимальный размер большого двоичного объекта, который требуется создать. Этот размер (blobSize) должен быть кратен 512 байтам.

Изменение размера страничного BLOB-объекта

NET (пакет SDK версии 12).

Чтобы изменить размер страничного BLOB-объекта после его создания, используйте метод Resize. Запрошенный размер должен быть кратен 512 байтам.

.NET (пакет SDK версии 11).

Чтобы изменить размер страничного BLOB-объекта после его создания, используйте метод Resize. Запрошенный размер должен быть кратен 512 байтам.

Запись страниц в страничный BLOB-объект

NET (пакет SDK версии 12).

Чтобы сохранить страницы, используйте метод PageBlobClient.UploadPages.

.NET (пакет SDK версии 11).

Для записи страниц используйте метод CloudPageBlob.WritePages.

Это позволит записать последовательный набор страниц размером до 4 МБ. Записываемое смещение должно начинаться на границе 512 байт (startingOffset % 512 == 0), а заканчиваться на границе 512 — 1.

Как только запрос на запись последовательного набора страниц успешно выполняется в службе BLOB-объектов и реплицируется для обеспечения устойчивости, запись фиксируется и клиенту отправляется уведомление о том, что запись завершена успешно.

На схеме ниже показано 2 отдельных операции записи:

Чтение страниц из страничного BLOB-объекта

NET (пакет SDK версии 12).

Чтобы считать страницы, используйте метод PageBlobClient.Download, который получает диапазон байтов из страничного BLOB-объекта.

.NET (пакет SDK версии 11).

Для чтения страниц используйте метод CloudPageBlob.DownloadRangeToByteArray, чтобы считать диапазон байтов из страничного BLOB-объекта.

Это даст возможность загрузить весь большой двоичный объект или диапазон байтов, начиная со смещения в большом двоичном объекте. При чтении смещение не должно начинаться с величины, кратной 512. При чтении байтов со страницы NUL служба возвращает нулевые байты.

На следующем рисунке показана операция чтения со смещением 256 и размером диапазона 4352. Возвращенные данные выделены оранжевым цветом. Для страниц NUL возвращаются нули.

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

NET (пакет SDK версии 12).

Чтобы определить, для каких страниц присутствуют данные, используйте метод PageBlobClient.GetPageRanges. Вы можете перечислить возвращаемые диапазоны и загрузить данные в каждом диапазоне.

.NET (пакет SDK версии 11).

Чтобы определить, какие страницы поддерживаются данными, используйте метод CloudPageBlob.GetPageRanges. Вы можете перечислить возвращаемые диапазоны и загрузить данные в каждом диапазоне.

Сдача страничного BLOB-объекта в аренду

Операция сдачи большого двоичного объекта в аренду устанавливает блокировку на большом двоичном объекте для операций записи и удаления, а также управляет ею. Эта операция полезна, если к страничному BLOB-объекту осуществляется доступ из нескольких клиентов. При ее применении запись в большой двоичный объект в текущий момент может осуществляться только одним клиентом. К примеру, в дисках Azure этот механизм сдачи в аренду используется, чтобы управление диском осуществлялось только с одной виртуальной машины. Длительность блокировки может составлять 15–60 секунд либо быть бесконечной. Дополнительные сведения см. в этой документации.

Помимо разнообразных интерфейсов REST API, страничные BLOB-объекты обеспечивают общий доступ, устойчивость и повышенную безопасность. Далее мы рассмотрим эти преимущества подробнее.

Одновременный доступ

REST API страничного BLOB-объекта и его механизм сдачи в аренду позволяет приложениям получать доступ к страничному BLOB-объекту из нескольких клиентов. Например, предположим, что нужно создать распределенную облачную службу, которая использует объекты хранилища совместно с несколькими пользователями. Это может быть веб-приложение, обслуживающее большую коллекцию изображений для нескольких пользователей. Один из вариантов для реализации — использование виртуальной машины с подключенными дисками. К недостаткам этого относится (а) ограничение подключения диска только к одной виртуальной машине, что уменьшает масштабируемость, гибкость и повышает риски. Если возникла проблема с виртуальной машиной или службой, запущенной на виртуальной машине, по истечении срока действия аренды или ее разрыва образ будет недоступен. Кроме того, требуются дополнительные затраты на виртуальную машину IaaS.

Альтернативным вариантом является использование страничных BLOB-объектов напрямую через интерфейсы REST API службы хранилища Azure. Этот вариант не требует использования дорогостоящих виртуальных машин IaaS, предоставляет гибкие возможности прямого доступа из нескольких клиентов, упрощает классическую модель развертывания (так как не нужно подключать и отключать диски) и исключает риски возникновения проблем на виртуальной машине. И обеспечивается тот же уровень производительности для произвольных операций чтения и записи, что и на диске.

Высокая доступность и устойчивость

Хранилища класса Standard и Premium — это надежные хранилища, в которых данные страничных BLOB-объектов всегда реплицируются для обеспечения устойчивости и высокого уровня доступности. Дополнительные сведения об избыточности службы хранилища Azure см. в этой документации. Azure стабильно гарантирует устойчивость дисков IaaS и страничных BLOB-объектов корпоративного уровня с ведущим в отрасли нулевым показателем процента сбоев в течение года.

Читайте также:  чем делают алмазное бурение

Простая миграция в Azure

Для клиентов и разработчиков, заинтересованных в реализации своего собственного пользовательского решения резервного копирования, Azure также предлагает добавочные моментальные снимки, которые содержат только разностные данные. Эта возможность позволяет избежать затрат на начальную полную копию, что значительно снижает расходы на резервное копирование. Помимо возможности эффективно считывать и копировать разностные данные есть другая эффективная возможность, которая помогает внедрить еще больше инноваций от разработчиков, обеспечивая лучшие в своем классе резервное копирование и аварийное восстановление. Вы можете настроить свое собственное решение резервного копирования или аварийного восстановления для виртуальных машин в Azure, используя моментальные снимки больших двоичных объектов, интерфейс API Get Page Ranges и интерфейс API Incremental Copy Blob, с помощью которого можно легко копировать добавочные данные для аварийного восстановления.

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

Примеры создания моментального снимка и восстановления страничного BLOB-объекта из моментального снимка см. в статье о настройке процесса резервного копирования с помощью добавочных моментальных снимков.

Источник

Операции с BLOB-объектами

Хранилище Microsoft Azure предоставляет операции REST для работы с BLOB-объектами в службе BLOB-объектов.

Содержание раздела

В этом разделе содержатся справочные сведения об операциях с блочными BLOB-объектами, добавочными двоичными объектами и страничными BLOB.

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

Put BLOB (Вставка BLOB-объекта)
Создает новый большой двоичный объект или заменяет существующий большой двоичный объект в контейнере.

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

Получение свойств большого двоичного объекта
Возвращает все пользовательские метаданные, стандартные свойства HTTP и системные свойства большого двоичного объекта.

Set BLOB Properties (Задание свойств службы BLOB-объекта)
Задает значения для свойств системы, определенных для большого двоичного объекта.

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

Установка тегов BLOB-объектов
Задает определяемые пользователем теги индекса больших двоичных объектов для указанного большого двоичного объекта в виде одной или нескольких пар «ключ-значение».

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

Get BLOB Metadata (Получение метаданных BLOB-объекта)
Возвращает все определяемые пользователем метаданные для указанного большого двоичного объекта.

Set BLOB Metadata (Задание метаданных BLOB-объекта)
Задает определяемые пользователем метаданные для определенного большого двоичного объекта в виде одной или нескольких пар «имя — значение».

Lease Blob (Аренда большого двоичного объекта)
Устанавливает блокировку на операции записи и удаления и управляет ею. Чтобы удалить заблокированный большой двоичный объект или записать что-либо в него, клиент должен использовать идентификатор аренды.

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

Копировать большой двоичный объект из URL-адреса Синхронно копирует большой двоичный объект в место назначения в учетной записи хранения для больших двоичных объектов исходного кода размером до 256 MiB.

Удаление BLOB-объекта
Отмечает указанный большой двоичный объект для удаления.

Отменить удаление BLOB-объекта Восстанавливает содержимое и метаданные обратимо удаленного большого двоичного объекта и связанных обратимо удаленных моментальных снимков.

Установка уровня большого двоичного объекта
Задает уровень доступа большого двоичного объекта.

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

Операции с блочными BLOB-объектами

Put Block (Вставка блокировки)
Создает новую блокировку, которая фиксируется как часть блочного BLOB-объекта.

Разместить блок по URL-адресу
Создает новый блок для фиксации в блочном двоичном объекте, в котором содержимое считывается из URL-адреса.

Put Block List (Вставка списка блокировки)
Фиксирует блочный BLOB-объект, указывая набор идентификаторов блокировок, представляющих BLOB-объект.

Get Block List (Получение списка блокировки)
Извлекает список блокировок, которые были загружены как часть блочного большого двоичного объекта.

Запрос содержимого большого двоичного объекта
применяет простую инструкцию язык SQL (SQL) к содержимому большого двоичного объекта и возвращает только запрашиваемое подмножество данных.

Операции с страничными BLOB-объектами

Put Page
Записывает диапазон страниц в страничный BLOB-объект.

Размещение страницы по URL-адресу Записывает диапазон страниц в страничный BLOB-объект, где содержимое считывается из URL.

Get Page Ranges (получение диапазона страницы);
Возвращает список диапазонов действительных страниц для страничного BLOB-объекта или моментальных снимков для страничного BLOB-объекта.

Incremental Copy Blob (инкрементная копия Blob);
Копирует моментальный снимок исходного двоичного объекта страницы в страничный BLOB-объект. Передаются только разностные изменения.

Операции с добавочными большими двоичными объектами

Append Block
Добавляет блок как часть добавляемого большого двоичного объекта.

Добавить блок из URL-адреса Добавляет блок в состав большого двоичного объекта, где содержимое считывается из URL-адреса.

Источник

Сказочный портал