Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этой статье показано, как подключиться к Хранилище BLOB-объектов Azure с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для Python. После подключения используйте руководства разработчика, чтобы узнать, как ваш код может работать с контейнерами, большими двоичными объектами и функциями службы хранилища BLOB-объектов.
Если вы хотите начать с полного примера, см. краткое руководство. Хранилище BLOB-объектов Azure клиентская библиотека для Python.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Учетная запись хранения Azure — создайте такую учетную запись.
- Python 3.8+
Настройка проекта
В этом разделе описывается подготовка проекта для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для Python.
В каталоге проекта установите пакеты для клиентских библиотек Хранилище BLOB-объектов Azure и удостоверений Azure с помощью pip install команды.
Пакет azure-identity необходим для бессерверных подключений к службам Azure.
pip install azure-storage-blob azure-identity
Затем откройте файл кода и добавьте необходимые инструкции импорта. В этом примере мы добавим следующее в файл .py :
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
Сведения о клиентской библиотеке BLOB-объектов:
- azure.storage.blob: содержит основные классы (клиентские объекты), которые можно использовать для работы со службой, контейнерами и большими двоичными объектами.
Асинхронное программирование
Клиентская библиотека Хранилище BLOB-объектов Azure для Python поддерживает синхронные и асинхронные API. Асинхронные API основаны на асинхронной библиотеке Python.
Выполните следующие действия, чтобы использовать асинхронные API в проекте:
Установите асинхронный транспорт, например aiohttp. Вы можете установить
aiohttpвместе сazure-storage-blobпомощью необязательной команды установки зависимостей. В этом примере мы используем следующуюpip installкоманду:pip install azure-storage-blob[aio]Откройте файл кода и добавьте необходимые инструкции импорта. В этом примере мы добавим следующее в файл .py :
import asyncio from azure.identity.aio import DefaultAzureCredential from azure.storage.blob.aio import BlobServiceClient, BlobClient, ContainerClientИнструкция
import asyncioтребуется только в том случае, если вы используете библиотеку в коде. Он добавлен здесь для ясности, так как примеры в статьях руководства разработчика используют библиотекуasyncio.Создайте клиентский объект, используя
async withдля начала работы с ресурсами данных. Необходимо использоватьasync withтолько клиент верхнего уровня, так как другие клиенты, созданные из него, используют тот же пул подключений. В этом примере мы создадимBlobServiceClientобъект с помощьюasync with, а затем создадимContainerClientобъект:async with BlobServiceClient(account_url, credential=credential) as blob_service_client: container_client = blob_service_client.get_container_client(container="sample-container")Дополнительные сведения см. в асинхронных примерах авторизации доступа и подключении к хранилищу BLOB-объектов.
Сведения о асинхронной клиентской библиотеке BLOB-объектов:
- azure.storage.blob.aio: содержит основные классы, которые можно использовать для асинхронной работы со службой, контейнерами и большими двоичными объектами.
Авторизация доступа и подключения к хранилищу BLOB-объектов
Чтобы подключить приложение к хранилищу BLOB-объектов, создайте экземпляр класса BlobServiceClient . Этот объект является отправной точкой для взаимодействия с ресурсами данных на уровне учетной записи хранения. Его можно использовать для работы с учетной записью хранения и ее контейнерами. Вы также можете использовать клиент службы для создания клиентов контейнеров или клиентов БОЛЬШИХ двоичных объектов в зависимости от ресурса, с которым требуется работать.
Дополнительные сведения о создании и управлении клиентскими объектами, включая рекомендации, см. в статье "Создание клиентских объектов и управление ими", взаимодействующих с ресурсами данных.
Вы можете авторизовать BlobServiceClient объект с помощью маркера авторизации Microsoft Entra, ключа доступа к учетной записи или подписанного URL-адреса (SAS). Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к данным BLOB-объектов. Дополнительные сведения см. в разделе "Авторизация доступа к BLOB-объектам" с помощью идентификатора Microsoft Entra.
Чтобы авторизовать идентификатор Microsoft Entra, необходимо использовать субъект безопасности. Какой тип субъекта безопасности требуется, зависит от того, где выполняется ваше приложение. Руководствуйтесь следующей таблицей.
| Где выполняется приложение | Субъект безопасности | Руководство |
|---|---|---|
| Локальный компьютер (разработка и тестирование) | Субъект-служба | Сведения о регистрации приложения, настройке группы Microsoft Entra, назначении ролей и настройке переменных среды см. в статье "Авторизация доступа с помощью субъектов-служб разработчиков" |
| Локальный компьютер (разработка и тестирование) | Удостоверение пользователя | Сведения о настройке группы Microsoft Entra, назначении ролей и входе в Azure см. в статье "Авторизация доступа с помощью учетных данных разработчика" |
| Размещено в Azure | Управляемое удостоверение | Сведения о включении управляемого удостоверения и назначении ролей см. в статье "Авторизация доступа из приложений, размещенных в Azure" с помощью управляемого удостоверения. |
| Размещенные вне Azure (например, локальные приложения) | Субъект-служба | Сведения о регистрации приложения, назначении ролей и настройке переменных среды см. в статье "Авторизация доступа из локальных приложений с помощью субъекта-службы приложений" |
Авторизация доступа с помощью DefaultAzureCredential
Простой и безопасный способ авторизации доступа и подключения к хранилищу BLOB-объектов — получить маркер OAuth, создав экземпляр DefaultAzureCredential . Затем можно использовать эти учетные данные для создания объекта BlobServiceClient .
В следующем примере создается BlobServiceClient объект с помощью DefaultAzureCredential:
def get_blob_service_client_token_credential(self):
# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()
# Create the BlobServiceClient object
blob_service_client = BlobServiceClient(account_url, credential=credential)
return blob_service_client
Если проект использует асинхронные API, создайте BlobServiceClient экземпляр с помощью async with:
# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()
async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
# Work with data resources in the storage account
Сборка приложения
При создании приложений для работы с ресурсами данных в Хранилище BLOB-объектов Azure код в основном взаимодействует с тремя типами ресурсов: учетными записями хранения, контейнерами и большими двоичными объектами. Дополнительные сведения об этих типах ресурсов, о том, как они связаны друг с другом и как приложения взаимодействуют с ресурсами, см. в статье "Общие сведения о взаимодействии приложений с ресурсами хранилища BLOB-объектов".
В следующих руководствах показано, как получить доступ к данным и выполнить определенные действия с помощью клиентской библиотеки служба хранилища Azure для Python:
| Руководство | Description |
|---|---|
| Настройка политики повторных попыток | Реализуйте политики повторных попыток для клиентских операций. |
| Копирование больших двоичных объектов | Скопируйте большой двоичный объект из одного расположения в другое. |
| Создание контейнера | Создание контейнеров BLOB-объектов. |
| Создание SAS для делегирования пользователя | Создайте SAS делегирования пользователей для контейнера или большого двоичного объекта. |
| Создание аренды BLOB-объектов и управление ими | Создайте блокировку большого двоичного объекта и управляйте ими. |
| Создание аренды контейнеров и управление ими | Создайте блокировку контейнера и управляйте ею. |
| Удаление и восстановление больших двоичных объектов | Удалите большие двоичные объекты и восстановите обратимо удаленные большие двоичные объекты. |
| Удаление и восстановление контейнеров | Удалите контейнеры и восстановите обратимо удаленные контейнеры. |
| скачивание больших двоичных объектов; | Скачивание BLOB-объектов с помощью строк, потоков и путей к файлам. |
| Поиск BLOB-объектов с помощью тегов | Задайте и извлеките теги и используйте теги для поиска больших двоичных объектов. |
| Перечисление больших двоичных объектов | Перечисление BLOB-объектов различными способами. |
| Перечисление контейнеров | Перечисление контейнеров в учетной записи и различные параметры, доступные для настройки списка. |
| Управление свойствами и метаданными (BLOB-объектами) | Получение и задание свойств и метаданных для BLOB-объектов. |
| Управление свойствами и метаданными (контейнерами) | Получение и задание свойств и метаданных для контейнеров. |
| Настройка производительности для передачи данных | Оптимизируйте производительность операций передачи данных. |
| Установка или изменение уровня доступа большого двоичного объекта | Задайте или измените уровень доступа для блочного большого двоичного объекта. |
| отправка больших двоичных объектов; | Отправка BLOB-объектов с помощью строк, потоков, путей к файлам и других методов. |