Краткое руководство. Управление большими двоичными объектами с помощью пакета SDK для JavaScript версии 12 в Node.js
Из этого краткого руководства вы узнаете, как управлять большими двоичными объектами с использованием Node.js. Большие двоичные объекты — это объекты, которые могут содержать большие объемы текстовых или двоичных данных, включая изображения, документы, потоковое мультимедиа и архивные данные.
В этих примерах фрагментов кода показано, как выполнять следующие действия с помощью библиотеки пакетов Хранилища BLOB-объектов Azure для JavaScript:
- Получение строки подключения
- Создание контейнера
- отправка больших двоичных объектов в контейнер;
- перечисление больших двоичных объектов в контейнере;
- скачивание больших двоичных объектов;
- Удаление контейнера
Дополнительные ресурсы:
Справочник по APIИсходный код библиотекиПакет (npm)Примеры
Предварительные требования
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- Учетная запись хранения Azure. Создание учетной записи хранения.
- Node.js LTS.
- Microsoft Visual Studio Code
Объектная модель
Хранилище BLOB-объектов Azure оптимизировано для хранения больших объемов неструктурированных данных. Неструктурированные данные — это данные, которые не соответствуют определенной модели данных или определению, например текстовых или двоичных данных. В хранилище BLOB-объектов предлагается три типа ресурсов:
- учетная запись хранения;
- контейнер в учетной записи хранения;
- большой двоичный объект в контейнере.
На следующей схеме показана связь между этими ресурсами.

Используйте следующие классы JavaScript для взаимодействия с этими ресурсами.
- BlobServiceClient. Класс
BlobServiceClientпозволяет управлять ресурсами службы хранилища Azure и контейнерами больших двоичных объектов. - ContainerClient. Класс
ContainerClientпозволяет управлять контейнерами службы хранилища Azure и содержащимися в них большими двоичными объектами. - BlobClient. Класс
BlobClientпозволяет управлять большими двоичными объектами службы хранилища Azure.
Создание проекта Node.js
Создайте приложение JavaScript с именем blob-quickstart-v12.
В окне консоли (командная строка, PowerShell или Bash) создайте каталог для проекта.
mkdir blob-quickstart-v12Перейдите в только что созданный каталог blob-quickstart-v12.
cd blob-quickstart-v12Создайте файл package.json.
npm init -yОткройте проект в Visual Studio Code:
code .
Установка пакета npm для хранилища BLOB-объектов
Установите пакет npm для службы хранилища Azure:
npm install @azure/storage-blobУстановите другие зависимости, используемые в этом кратком руководстве:
npm install uuid dotenv
Создание файла JavaScript
Из каталога проекта:
Создайте файл с именем
index.js.Скопируйте в файл приведенный ниже код. Вы будете добавлять строки кода по мере ознакомления с этим руководством.
const { BlobServiceClient } = require('@azure/storage-blob'); const { v1: uuidv1} = require('uuid'); require('dotenv').config() async function main() { console.log('Azure Blob storage v12 - JavaScript quickstart sample'); // Quick start code goes here } main() .then(() => console.log('Done')) .catch((ex) => console.log(ex.message));
Копирование учетных данных с портала Azure
Когда пример приложения выполняет запрос к службе хранилища Azure, он должен быть авторизован. Для авторизации запроса добавьте в приложение учетные данные учетной записи хранения в виде строки подключения. Чтобы просмотреть учетные данные учетной записи хранения, выполните следующие шаги:
Войдите на портал Azure.
Перейдите к учетной записи хранения.
На панели меню учетной записи хранения в разделе Безопасность и сети выберите Ключи доступа. На этой странице вы увидите ключи доступа к учетной записи и полную строку подключения для каждого ключа.

В области Ключи доступа выберите команду Показать ключи.
В разделе key1 выберите значение Строка подключения. Нажмите значок Копировать в буфер обмена, чтобы скопировать строку подключения. В следующем разделе вы добавите значение строки подключения в переменную среды.

Настройка строки подключения хранилища
После копирования строки подключения запишите ее в переменной среды на локальном компьютере, где выполняется приложение. Чтобы задать переменную среды, откройте окно консоли и следуйте инструкциям для используемой операционной системы. Замените <yourconnectionstring> фактической строкой подключения.
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
После добавления переменной среды в Windows вам необходимо запустить новый экземпляр командного окна.
Перезапуск программ
После добавления переменной среды перезапустите все запущенные программы, которым может понадобиться считать переменную среды. Например, перезапустите среду разработки или редактор, прежде чем продолжить.
Получение строки подключения
Приведенный ниже код извлекает строку подключения для учетной записи хранения из переменной среды, созданной в разделе Настройка строки подключения хранилища.
Добавьте этот код в функцию main.
const AZURE_STORAGE_CONNECTION_STRING =
process.env.AZURE_STORAGE_CONNECTION_STRING;
if (!AZURE_STORAGE_CONNECTION_STRING) {
throw Error("Azure Storage Connection string not found");
}
Создание контейнера
Выберите имя нового контейнера. Имена контейнеров должны состоять из знаков нижнего регистра.
Дополнительные сведения об именовании контейнеров и больших двоичных объектов см. в статье Naming and Referencing Containers, Blobs, and Metadata (Именование контейнеров, больших двоичных объектов и метаданных и ссылка на них).
Добавьте следующий код в конец функции
main.// Create the BlobServiceClient object which will be used to create a container client const blobServiceClient = BlobServiceClient.fromConnectionString( AZURE_STORAGE_CONNECTION_STRING ); // Create a unique name for the container const containerName = "quickstart" + uuidv1(); console.log("\nCreating container..."); console.log("\t", containerName); // Get a reference to a container const containerClient = blobServiceClient.getContainerClient(containerName); // Create the container const createContainerResponse = await containerClient.create(); console.log( "Container was created successfully. requestId: ", createContainerResponse.requestId );Приведенный выше код создает экземпляр класса BlobServiceClient, вызывая метод fromConnectionString. Затем вызовите метод getContainerClient, чтобы получить ссылку на контейнер. Наконец, вызовите метод create, чтобы создать контейнер в учетной записи хранения.
Отправка больших двоичных объектов в контейнер
Скопируйте следующий код в конец функции main, чтобы передать текстовую строку в большой двоичный объект:
// Create a unique name for the blob
const blobName = "quickstart" + uuidv1() + ".txt";
// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
console.log("\nUploading to Azure storage as blob:\n\t", blobName);
// Upload data to the blob
const data = "Hello, World!";
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);
console.log(
"Blob was uploaded successfully. requestId: ",
uploadBlobResponse.requestId
);
Приведенный выше код получает ссылку на объект BlockBlobClient, вызывая метод getBlockBlobClient для ContainerClient из раздела Создание контейнера. Код передает данные текстовой строки в большой двоичный объект, вызывая метод upload.
Перечисление BLOB-объектов в контейнере
Добавьте следующий код в конец функции main, чтобы получить список больших двоичных объектов в контейнере.
console.log("\nListing blobs...");
// List the blob(s) in the container.
for await (const blob of containerClient.listBlobsFlat()) {
console.log("\t", blob.name);
}
Приведенный выше код вызывает метод listBlobsFlat. В этом случае в контейнер был добавлен лишь один большой двоичный объект, поэтому операция перечисления возвращает только его.
Скачивание больших двоичных объектов
Добавьте следующий код в конец функции
main, чтобы скачать ранее созданный BLOB-объект в среду выполнения приложения.// Get blob content from position 0 to the end // In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody // In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody const downloadBlockBlobResponse = await blockBlobClient.download(0); console.log("\nDownloaded blob content..."); console.log( "\t", await streamToText(downloadBlockBlobResponse.readableStreamBody) );Приведенный выше код вызывает метод download.
Скопируйте следующий код после функции
main, чтобы преобразовать поток обратно в строку.// Convert stream to text async function streamToText(readable) { readable.setEncoding('utf8'); let data = ''; for await (const chunk of readable) { data += chunk; } return data; }
Удаление контейнера
Добавьте этот код в конец функции main, чтобы удалить контейнер и все его большие двоичные объекты:
// Delete container
console.log("\nDeleting container...");
const deleteContainerResponse = await containerClient.delete();
console.log(
"Container was deleted successfully. requestId: ",
deleteContainerResponse.requestId
);
Приведенный выше код очищает созданные приложением ресурсы, полностью удаляя контейнер с помощью метода delete. Кроме того, при необходимости можно удалить локальные файлы.
Выполнение кода
В терминале Visual Studio Code запустите приложение.
node index.jsВы должны увидеть выходные данные приложения, как показано ниже.
Azure Blob storage v12 - JavaScript quickstart sample Creating container... quickstart4a0780c0-fb72-11e9-b7b9-b387d3c488da Uploading to Azure Storage as blob: quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt Listing blobs... quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt Downloaded blob content... Hello, World! Deleting container... Done
Пошагово выполните код в отладчике и просматривайте результаты на портале Azure. Проверьте, создан ли контейнер. Вы можете открыть большой двоичный объект в контейнере и просмотреть его содержимое.
Использование эмулятора хранилища
В рамках этого краткого руководства вы создали контейнер и большой двоичный объект в облаке Azure. Вы также можете использовать пакет npm Хранилища BLOB-объектов Azure для создания этих ресурсов локально в эмуляторе службы хранилища Azure для разработки и тестирования.
Очистка
- По завершении работы с этим руководством удалите каталог
blob-quickstart-v12. - Если вы не планируете дальше использовать ресурс службы хранилища Azure, удалите его с помощью Azure CLI.
Дальнейшие действия
В этом кратком руководстве вы узнали, как передавать и скачивать большие двоичные объекты, а также выводить их список с помощью JavaScript.
Учебники, примеры, краткие руководства и другую документацию можно найти по следующим ссылкам:
- Чтобы узнать, как развернуть веб-приложение, использующее хранилище больших двоичных объектов Azure, см. Руководство по передаче данных изображений в облако с помощью службы хранилища Azure.
- Дополнительные примеры приложений для хранилища BLOB-объектов см. в репозитории примеров с использованием библиотеки пакетов Хранилища Blob-объектов Azure версии 12 для JavaScript.
- Дополнительные сведения см в документации по клиентской библиотеке Хранилища Blob-объектов Azure для JavaScript.