Partager via


Bien démarrer avec le service Stockage Blob Azure et Python

Cet article vous montre comment vous connecter au service Stockage Blob Azure à l’aide de la bibliothèque de client Stockage Blob Azure pour Python. Une fois la connexion établie, votre code peut opérer sur les conteneurs, les blobs et les fonctionnalités du service Stockage Blob Azure.

Référence API | Package (PyPi) | Code source de la bibliothèque | Échantillons | Envoyer des commentaires

Prérequis

Configuration de votre projet

Cette section vous guide tout au long de la préparation d’un projet à utiliser avec la bibliothèque de client Stockage Blob Azure pour Python.

À partir du répertoire du projet, installez les packages des bibliothèques de client Stockage Blob Azure et Azure Identity à l’aide de la commande pip install. Le package azure-identity est nécessaire pour les connexions sans mot de passe aux services Azure.

pip install azure-storage-blob azure-identity

Ouvrez ensuite votre fichier de code, et ajoutez les instructions import nécessaires. Dans cet exemple, nous ajoutons ce qui suit à notre fichier .py :

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

Informations sur la bibliothèque de client de blob :

  • azure.storage.blob : contient les classes primaires (objets clients) qui vous permettent d’effectuer des opérations sur le service, les conteneurs et les objets blob.

Programmation asynchrone

La bibliothèque cliente Stockage Blob Azure pour Python prend en charge les APIs synchrones et asynchrones. Les API asynchrones sont basées sur la bibliothèque asyncio python.

Procédez comme suit pour utiliser les API asynchrones dans votre projet :

  • Installez un transport asynchrone, tel que aiohttp. Vous pouvez installer aiohttp avec azure-storage-blob à l’aide d’une commande d’installation de dépendance facultative. Dans cet exemple, nous utilisons la commande pip install suivante :

    pip install azure-storage-blob[aio]
    
  • Ouvrez votre fichier de code, et ajoutez les instructions import nécessaires. Dans cet exemple, nous ajoutons ce qui suit à notre fichier .py :

    import asyncio
    
    from azure.identity.aio import DefaultAzureCredential
    from azure.storage.blob.aio import BlobServiceClient, BlobClient, ContainerClient
    

    L’instruction import asyncio n’est requise que si vous utilisez la bibliothèque dans votre code. Il est ajouté ici pour plus de clarté, car les exemples des articles du guide des développeurs utiliser la bibliothèque de asyncio.

  • Créez un objet client à l’aide de async with pour commencer à utiliser des ressources de données. Seul le client de niveau supérieur doit utiliser async with, car d’autres clients créés à partir de celui-ci partagent le même pool de connexions. Dans cet exemple, nous créons un objet BlobServiceClient à l’aide de async with, puis créons un objet ContainerClient :

    async with BlobServiceClient(account_url, credential=credential) as blob_service_client:
        container_client = blob_service_client.get_container_client(container="sample-container")
    

    Pour plus d’informations, consultez les exemples asynchrones de Autoriser l’accès et vous connecter au stockage Blob.

Informations sur la bibliothèque asynchrone du client de blob :

  • azure.storage.blob : contient les classes primaires qui vous permettent d’effectuer des opérations sur le service, les conteneurs et les objets blob de façon asynchrone.

Autoriser l’accès et la connexion au Stockage Blob

Pour connecter une application à Stockage Blob, créez une instance de la classe BlobServiceClient. Cet objet est votre point de départ pour interagir avec les ressources de données au niveau du compte de stockage. Vous pouvez l’utiliser pour opérer sur le compte de stockage et ses conteneurs. Vous pouvez également utiliser le client de service pour créer des clients de conteneurs ou des clients d’objets blob, en fonction de la ressource que vous devez utiliser.

Pour en savoir plus sur la création et la gestion d’objets clients, incluant les meilleures pratiques, consultez Créer et gérer des objets clients qui interagissent avec les ressources de données.

Vous pouvez autoriser un objet BlobServiceClient en utilisant un jeton d’autorisation Microsoft Entra, une clé d’accès au compte ou une signature d’accès partagé (SAP).

Pour autoriser avec Microsoft Entra ID, vous devez utiliser un principal de sécurité. Le type de principal de sécurité dont vous avez besoin dépend de l’emplacement d’exécution de votre application. Utilisez le tableau suivant comme guide :

Emplacement d’exécution de l’application Principal de sécurité Assistance
Ordinateur local (développement et test) Principal du service Pour découvrir comment inscrire l’application, configurer un groupe Microsoft Entra, attribuer des rôles et configurer des variables d’environnement, consultez Autoriser l’accès à l’aide de principaux de service de développeur
Ordinateur local (développement et test) Identité de l’utilisateur Pour découvrir comment configurer un groupe Microsoft Entra, attribuer des rôles et se connecter à Azure, consultez Autoriser l’accès à l’aide des informations d’identification du développeur
Hébergé dans Azure Identité managée Pour savoir comment activer une identité managée et attribuer des rôles, consultez Autoriser l’accès à partir d’applications hébergées sur Azure en utilisant une identité managée.
Hébergé en dehors d’Azure (par exemple, des applications locales) Principal du service Pour savoir comment inscrire l’application, attribuer des rôles et configurer des variables d’environnement, consultez Autoriser l’accès à partir d’applications locales en utilisant un principal de service d’application.

Autoriser l’accès en utilisant DefaultAzureCredential

Un moyen simple et facile d’autoriser l’accès et de se connecter au Stockage Blob consiste à obtenir un jeton OAuth en créant une instance DefaultAzureCredential. Vous pouvez ensuite utiliser ces informations d’identification pour créer un objet BlobServiceClient.

L’exemple suivant crée un objet BlobServiceClient à l’aide de 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

Si votre projet utilise des API asynchrones, instanciez BlobServiceClient à l’aide de 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

Générer votre application

Quand vous créez des applications pour utiliser des ressources de données dans Stockage Blob Azure, votre code interagit principalement avec trois types de ressources : comptes de stockage, conteneurs et objets blob. Si vous souhaitez en savoir plus sur ces types de ressources, sur leurs liens entre eux et sur l’interaction des applications avec les ressources, veuillez consulter la rubrique Comprendre comment les applications interagissent avec les ressources de données du Stockage Blob.

Les guides suivants vous montrent comment utiliser des ressources de données, puis effectuer des actions spécifiques à l’aide de la bibliothèque de client Stockage Azure pour Python :

Guide Description
Créer un conteneur Créez des conteneurs.
Supprimer et restaurer des conteneurs Supprimez des conteneurs et, si la suppression réversible est activée, restaurez des conteneurs supprimés.
Lister des conteneurs Répertoriez les conteneurs dans un compte et les différentes options disponibles pour personnaliser une liste.
Gérer les propriétés et les métadonnées (conteneurs) Obtenez et définissez les propriétés et les métadonnées pour des conteneurs.
Créer et gérer des baux de conteneur Établissez et gérez un verrou sur un conteneur.
Créer et gérer des baux de blob Établissez et gérez un verrou sur un blob.
Charger des objets blob Découvrez comment charger des blobs à l’aide de chaînes, de flux, de chemins d’accès de fichiers et d’autres méthodes.
Télécharger des objets blob Téléchargez des blobs à l’aide de chaînes, de flux et de chemins d’accès de fichiers.
Copier des objets blob Copiez un blob d’un emplacement à un autre.
Lister des objets blob Répertoriez les blobs de différentes façons.
Supprimer et restaurer Supprimez des blobs et, si la suppression réversible est activée, restaurez des blobs supprimés.
Rechercher des blobs à l’aide d’étiquettes Définissez et récupérez des étiquettes, puis utilisez-les pour rechercher des objets blob.
Gérer les propriétés et les métadonnées (blobs) Obtenez et définissez des propriétés et des métadonnées pour des blobs.
Définissez le niveau d’accès d’un blob Définissez ou modifiez le niveau d’accès d’un objet blob de blocs.