Управление свойствами и метаданными BLOB-объектов с помощью JavaScript
Кроме данных, которые они содержат, BLOB-объекты поддерживают свойства системы и определяемые пользователем метаданные. В этой статье рассматривается управление свойствами системы и определяемыми пользователем метаданными с помощью клиентской библиотеки хранилища Azure для JavaScript.
Необходимые компоненты
- В примерах этой статьи предполагается, что у вас уже есть проект, настроенный для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для JavaScript. Сведения о настройке проекта, включая установку пакетов, импорт модулей и создание авторизованного клиентского объекта для работы с ресурсами данных, см. в статье "Начало работы с Хранилище BLOB-объектов Azure и JavaScript".
- Механизм авторизации должен иметь разрешения на работу со свойствами или метаданными больших двоичных объектов. Дополнительные сведения см. в руководстве по авторизации для следующих операций REST API:
Сведения о свойствах и метаданных
Свойства системы: свойства системы есть у каждого ресурса хранилища BLOB-объектов. Некоторые из них можно считать или задать, некоторые — только считать. На самом деле, некоторые свойства системы соответствуют определенным стандартным заголовкам HTTP. Клиентская библиотека службы хранилища Azure для JavaScript сохраняет эти свойства.
Определяемые пользователем метаданные: такие метаданные состоят из одной или нескольких пар "имя-значение", которые можно указать для ресурса хранилища BLOB-объектов. Вы можете использовать метаданные для хранения дополнительных значений с помощью ресурса хранилища. Значения метаданных предназначены только для ваших собственных целей и не влияют на поведение ресурса.
Пары имен и значений метаданных являются допустимыми HTTP-заголовками, поэтому они должны соответствовать всем ограничениям для HTTP-заголовков. Дополнительные сведения о требованиях к именованию метаданных см. в разделе "Имена метаданных".
Примечание.
Теги индекса BLOB-объектов также предоставляют возможность хранения произвольных пользовательских атрибутов ключа и значения наряду с ресурсом хранилища BLOB-объектов Azure. Аналогично метаданным только теги индекса BLOB-объектов автоматически индексируются и делаются доступными для поиска в собственной службе BLOB-объектов. Метаданные не могут индексироваться и запрашиваться, если не используется отдельная служба, например поиск Azure.
Дополнительные сведения об этой функции см. в статье Управление данными в хранилище BLOB-объектов Azure и их поиск с помощью индекса больших двоичных объектов (предварительная версия).
Задание и извлечение свойств
Чтобы задать свойства большого двоичного объекта, используйте следующий метод:
В следующем примере код задает свойства системы blobContentType
и blobContentLanguage
для BLOB-объекта.
Все свойства, не заданные явно, очищаются. Следующий пример кода сначала получает существующие свойства большого двоичного объекта, а затем использует их для заполнения заголовков, которые не обновляются.
async function setHTTPHeaders(blobClient, headers) {
// Get existing properties
const properties = await blobClient.getProperties();
// Set the blobContentType and blobContentLanguage headers
// Populate the remaining headers from the existing properties
blobHeaders = {
blobContentType: 'text/plain',
blobContentLanguage: 'en-us',
blobContentEncoding: properties.contentEncoding,
blobCacheControl: properties.cacheControl,
blobContentDisposition: properties.contentDisposition,
blobContentMD5: properties.contentMD5
},
await blobClient.setHTTPHeaders(blobHeaders);
}
Чтобы получить свойства большого двоичного объекта, используйте следующий метод:
Следующий пример кода получает системные свойства большого двоичного объекта и отображает некоторые значения:
async function getProperties(blobClient) {
const properties = await blobClient.getProperties();
console.log(`blobType: ${properties.blobType}`);
console.log(`contentType: ${properties.contentType}`);
console.log(`contentLength: ${properties.contentLength}`);
console.log(`lastModified: ${properties.lastModified}`);
}
Задание и извлечение метаданных
Метаданные можно указать как одну или несколько пар "имя-значение" для BLOB-ресурса или ресурса контейнера. Чтобы задать метаданные, отправьте объект метаданных , содержащий пары "имя-значение", с помощью следующего метода:
В следующем примере кода задаются метаданные большого двоичного объекта:
async function setBlobMetadata(blobClient, metadata) {
metadata = {
docType: 'text',
category: 'reference'
};
await blobClient.setMetadata(metadata);
}
Чтобы получить метаданные, вызовите метод getProperties в большом двоичном объекте, чтобы заполнить коллекцию метаданных, а затем считывать значения из свойства метаданных . Метод getProperties
извлекает свойства и метаданные большого Get Blob Properties
двоичного объекта, вызывая операцию и Get Blob Metadata
операцию.
Ресурсы
Дополнительные сведения об управлении свойствами системы и пользовательскими метаданными с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для JavaScript см. в следующих ресурсах.
Примеры кода
- Просмотр примеров кода JavaScript и TypeScript из этой статьи (GitHub)
Операции REST API
Пакет SDK Azure для JavaScript содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы JavaScript. Методы клиентской библиотеки для управления системными свойствами и пользовательскими метаданными используют следующие операции REST API:
- Задание свойств BLOB-объектов (REST API)
- Получение свойств BLOB-объектов (REST API)
- Настройка метаданных BLOB-объектов (REST API)
- Получение метаданных BLOB-объектов (REST API)
Ресурсы клиентской библиотеки
Связанный контент
- Эта статья является частью руководства разработчика хранилища BLOB-объектов для JavaScript/Typescript. Дополнительные сведения см. в полном списке статей руководства разработчика по созданию приложения JavaScript/Typescript.