Introduction à Azure Storage et Python

Azure Storage est un service de stockage en nuage de Microsoft qui offre des services de stockage durables, hautement disponibles, sécurisés et évolutifs. Il comprend des services tels que Blob Storage, File Storage, Queue Storage et Table Storage.

Blob Storage est un service pour le stockage de grandes quantités de données non structurées, telles que des images, des vidéos, des fichiers journaux, des sauvegardes, etc. Un blob est simplement un objet de données, et un conteneur blob est un groupe nommé de blobs.

Python est un langage de programmation populaire pour le développement web, l’analyse de données, l’automatisation, et bien plus encore. Il est largement utilisé pour interagir avec les services de stockage en nuage, y compris Azure Storage.

La bibliothèque azure-storage-blob de Python fournit des interfaces pour travailler avec Blob Storage. Par exemple, vous pouvez utiliser cette bibliothèque pour lister tous les blobs dans un conteneur, télécharger un blob, télécharger un blob, etc.

Dans les sections suivantes, nous allons explorer comment lister les blobs dans un conteneur Azure Storage en utilisant Python.

Prérequis pour lister les blobs

Pour lister les blobs dans un conteneur Azure Storage en utilisant Python, vous aurez besoin des éléments suivants :

  1. Compte Azure : Vous aurez besoin d’un compte Azure pour accéder au service Azure Storage. Si vous n’en avez pas déjà un, vous pouvez créer un compte gratuit.

  2. Compte de stockage Azure : Un compte de stockage Azure est nécessaire pour créer des conteneurs et stocker des blobs. Vous pouvez créer un compte de stockage dans le portail Azure.

  3. Conteneur Azure Blob : Vous devez avoir un conteneur dans votre compte de stockage pour stocker les blobs. Vous pouvez créer un conteneur via le portail Azure ou en utilisant l’interface de programmation d’application (API) Azure Storage.

  4. Python : Vous aurez besoin de Python installé sur votre machine. La bibliothèque azure-storage-blob nécessite Python 2.7 ou Python 3.6 ou une version ultérieure.

  5. Bibliothèque azure-storage-blob : Cette bibliothèque Python fournit des interfaces pour travailler avec Azure Blob Storage. Vous pouvez l’installer en utilisant pip :

pip install azure-storage-blob
  1. Clé d’accès au compte de stockage : Pour accéder à votre compte de stockage à partir de l’application Python, vous aurez besoin de la clé d’accès au compte de stockage. Vous pouvez trouver cette clé dans le portail Azure.

Avec ces prérequis en place, vous êtes prêt à commencer à travailler avec Azure Blob Storage en Python. Dans la section suivante, nous allons explorer les différentes options pour lister les blobs dans un conteneur.

Options de listage des blobs

Azure Blob Storage offre plusieurs options pour lister les blobs dans un conteneur. Voici quelques-unes des options les plus couramment utilisées :

  1. Listage plat : Cette option vous permet de lister tous les blobs dans un conteneur, indépendamment de leur structure hiérarchique. C’est l’option par défaut pour le listage des blobs.

  2. Listage hiérarchique : Cette option vous permet de lister les blobs dans un conteneur en respectant leur structure hiérarchique. Cela peut être utile si vous avez organisé vos blobs en utilisant des dossiers virtuels.

  3. Filtrage par préfixe : Cette option vous permet de lister les blobs qui commencent par un certain préfixe. Cela peut être utile si vous voulez lister seulement les blobs qui correspondent à un certain modèle.

  4. Pagination : Si vous avez un grand nombre de blobs dans votre conteneur, vous pouvez choisir de les lister par pages. Vous pouvez spécifier la taille de la page et utiliser un jeton de continuation pour récupérer la page suivante.

  5. Inclusion des métadonnées : Lors du listage des blobs, vous pouvez choisir d’inclure les métadonnées de chaque blob. Cela peut être utile si vous stockez des informations supplémentaires avec vos blobs.

Dans la section suivante, nous allons explorer en détail comment utiliser ces options pour lister les blobs dans un conteneur Azure Storage en utilisant Python.

Listage plat vs listage hiérarchique

Azure Blob Storage offre deux options principales pour lister les blobs dans un conteneur : le listage plat et le listage hiérarchique.

Listage plat

Le listage plat est l’option par défaut pour le listage des blobs. Il vous permet de lister tous les blobs dans un conteneur, indépendamment de leur structure hiérarchique. C’est-à-dire que tous les blobs sont listés comme s’ils étaient à la racine du conteneur, même s’ils sont organisés en dossiers virtuels.

Voici un exemple de code pour effectuer un listage plat en utilisant la bibliothèque azure-storage-blob :

from azure.storage.blob import BlobServiceClient

blob_service_client = BlobServiceClient.from_connection_string(my_connection_string)
container_client = blob_service_client.get_container_client(my_container_name)

blobs_list = container_client.list_blobs()
for blob in blobs_list:
    print(blob.name)

Listage hiérarchique

Le listage hiérarchique vous permet de lister les blobs dans un conteneur en respectant leur structure hiérarchique. Cela peut être utile si vous avez organisé vos blobs en utilisant des dossiers virtuels.

Voici un exemple de code pour effectuer un listage hiérarchique en utilisant la bibliothèque azure-storage-blob :

from azure.storage.blob import BlobServiceClient

blob_service_client = BlobServiceClient.from_connection_string(my_connection_string)
container_client = blob_service_client.get_container_client(my_container_name)

blobs_list = container_client.list_blobs(name_starts_with='my_folder/')
for blob in blobs_list:
    print(blob.name)

Dans cet exemple, seuls les blobs dans le dossier virtuel my_folder/ sont listés.

En résumé, le choix entre le listage plat et le listage hiérarchique dépend de la façon dont vous avez organisé vos blobs et de la façon dont vous voulez les récupérer.

Exemple de code pour lister les blobs

Voici un exemple de code Python qui utilise la bibliothèque azure-storage-blob pour lister tous les blobs dans un conteneur Azure Storage :

from azure.storage.blob import BlobServiceClient

# Remplacez par votre chaîne de connexion et le nom de votre conteneur
my_connection_string = "<your_connection_string>"
my_container_name = "<your_container_name>"

# Créez un client de service blob à partir de la chaîne de connexion
blob_service_client = BlobServiceClient.from_connection_string(my_connection_string)

# Obtenez un client de conteneur à partir du client de service blob
container_client = blob_service_client.get_container_client(my_container_name)

# Utilisez le client de conteneur pour lister tous les blobs dans le conteneur
blobs_list = container_client.list_blobs()

# Parcourez la liste des blobs et imprimez le nom de chaque blob
for blob in blobs_list:
    print(blob.name)

Dans cet exemple, vous devez remplacer <your_connection_string> par la chaîne de connexion de votre compte de stockage Azure et <your_container_name> par le nom de votre conteneur Azure Blob.

Ce code liste tous les blobs dans le conteneur spécifié. Si vous voulez filtrer les blobs par préfixe ou effectuer un listage hiérarchique, vous pouvez passer des arguments supplémentaires à la méthode list_blobs(). Par exemple, pour lister tous les blobs qui commencent par ‘images/’, vous pouvez appeler container_client.list_blobs(name_starts_with='images/').

Filtrer les résultats avec un préfixe

Azure Blob Storage vous permet de filtrer les blobs dans un conteneur en fonction d’un préfixe. Cela peut être utile si vous avez organisé vos blobs en utilisant des dossiers virtuels et que vous voulez lister seulement les blobs dans un certain dossier.

Voici un exemple de code Python qui utilise la bibliothèque azure-storage-blob pour lister tous les blobs dans un conteneur Azure Storage qui commencent par un certain préfixe :

from azure.storage.blob import BlobServiceClient

# Remplacez par votre chaîne de connexion et le nom de votre conteneur
my_connection_string = "<your_connection_string>"
my_container_name = "<your_container_name>"

# Créez un client de service blob à partir de la chaîne de connexion
blob_service_client = BlobServiceClient.from_connection_string(my_connection_string)

# Obtenez un client de conteneur à partir du client de service blob
container_client = blob_service_client.get_container_client(my_container_name)

# Utilisez le client de conteneur pour lister tous les blobs dans le conteneur qui commencent par 'images/'
blobs_list = container_client.list_blobs(name_starts_with='images/')

# Parcourez la liste des blobs et imprimez le nom de chaque blob
for blob in blobs_list:
    print(blob.name)

Dans cet exemple, vous devez remplacer <your_connection_string> par la chaîne de connexion de votre compte de stockage Azure et <your_container_name> par le nom de votre conteneur Azure Blob. Le préfixe ‘images/’ est utilisé pour filtrer les blobs. Seuls les blobs dont le nom commence par ‘images/’ seront listés. Vous pouvez remplacer ‘images/’ par le préfixe de votre choix.

Conclusion

Azure Blob Storage est un service puissant pour le stockage de données non structurées dans le cloud. Avec Python et la bibliothèque azure-storage-blob, vous pouvez facilement interagir avec ce service, y compris lister les blobs dans un conteneur.

Dans cet article, nous avons exploré comment lister les blobs dans un conteneur Azure Storage en utilisant Python. Nous avons couvert les prérequis nécessaires, les différentes options de listage des blobs, et fourni des exemples de code pour chaque option.

Que vous souhaitiez lister tous les blobs dans un conteneur, respecter la structure hiérarchique des blobs, ou filtrer les blobs par préfixe, Azure Blob Storage et Python ont les outils dont vous avez besoin.

Nous espérons que cet article vous aidera dans vos projets de développement Python avec Azure Storage. Bon codage !

By laurent

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *