Delen via


Aan de slag met Azure Blob Storage en Python

In dit artikel leest u hoe u verbinding maakt met Azure Blob Storage met behulp van de Azure Blob Storage-clientbibliotheek voor Python. Zodra u verbinding hebt gemaakt, gebruikt u de ontwikkelaarshandleidingen om te leren hoe uw code kan werken op containers, blobs en functies van de Blob Storage-service.

Als u wilt beginnen met een volledig voorbeeld, raadpleegt u quickstart: Azure Blob Storage-clientbibliotheek voor Python.

Broncodevoorbeelden van API-referentiepakket | (PyPi) | -bibliotheek | geven feedback |

Vereisten

Uw project instellen

In deze sectie wordt uitgelegd hoe u een project voorbereidt voor gebruik met de Azure Blob Storage-clientbibliotheek voor Python.

Installeer vanuit uw projectmap pakketten voor de Azure Blob Storage- en Azure Identity-clientbibliotheken met behulp van de pip install opdracht. Het azure-identity-pakket is nodig voor verbindingen zonder wachtwoord met Azure-services.

pip install azure-storage-blob azure-identity

Open vervolgens het codebestand en voeg de benodigde importinstructies toe. In dit voorbeeld voegen we het volgende toe aan het bestand .py :

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

Informatie over de Blob-clientbibliotheek:

  • azure.storage.blob: bevat de primaire klassen (clientobjecten) die u kunt gebruiken om te werken op de service, containers en blobs.

Asynchroon programmeren

De Azure Blob Storage-clientbibliotheek voor Python ondersteunt zowel synchrone als asynchrone API's. De asynchrone API's zijn gebaseerd op de asynchrone bibliotheek van Python.

Volg deze stappen om de asynchrone API's in uw project te gebruiken:

  • Installeer een asynchroon transport, zoals aiohttp. U kunt aiohttp deze installeren met azure-storage-blob behulp van een optionele installatieopdracht voor afhankelijkheden. In dit voorbeeld gebruiken we de volgende pip install opdracht:

    pip install azure-storage-blob[aio]
    
  • Open het codebestand en voeg de benodigde importinstructies toe. In dit voorbeeld voegen we het volgende toe aan het bestand .py :

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

    De import asyncio instructie is alleen vereist als u de bibliotheek in uw code gebruikt. Het wordt hier ter duidelijkheid toegevoegd, omdat de voorbeelden in de artikelen over ontwikkelaarshandleidingen gebruikmaken van de asyncio bibliotheek.

  • Maak een clientobject met behulp van async with het werken met gegevensbronnen. Alleen de client op het hoogste niveau moet worden gebruikt async with, omdat andere clients die ermee zijn gemaakt, dezelfde verbindingsgroep delen. In dit voorbeeld maken we een BlobServiceClient object met behulp van async withen maken we vervolgens een ContainerClient object:

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

    Zie de asynchrone voorbeelden in Toegang autoriseren en verbinding maken met Blob Storage voor meer informatie.

Informatie over blob asynchrone clientbibliotheek:

  • azure.storage.blob.aio: bevat de primaire klassen die u kunt gebruiken om asynchroon te werken op de service, containers en blobs.

Toegang autoriseren en verbinding maken met Blob Storage

Als u een app wilt verbinden met Blob Storage, maakt u een exemplaar van de BlobServiceClient-klasse . Dit object is het startpunt om te communiceren met gegevensbronnen op het niveau van het opslagaccount. U kunt het gebruiken om te werken op het opslagaccount en de bijbehorende containers. U kunt de serviceclient ook gebruiken om containerclients of blob-clients te maken, afhankelijk van de resource waarmee u moet werken.

Zie Clientobjecten maken en beheren die interactie hebben met gegevensbronnen voor meer informatie over het maken en beheren van clientobjecten, inclusief aanbevolen procedures.

U kunt een BlobServiceClient object autoriseren met behulp van een Microsoft Entra-autorisatietoken, een toegangssleutel voor een account of een SAS (Shared Access Signature). Voor optimale beveiliging raadt Microsoft aan om Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen voor blobgegevens te autoriseren. Zie Toegang tot blobs autoriseren met behulp van Microsoft Entra-id voor meer informatie.

Als u wilt autoriseren met Microsoft Entra-id, moet u een beveiligingsprincipaal gebruiken. Welk type beveiligingsprincipaal u nodig hebt, is afhankelijk van waar uw app wordt uitgevoerd. Gebruik de volgende tabel als richtlijn:

Waar de app wordt uitgevoerd Beveiligingsprincipal Richtlijn
Lokale machine (ontwikkelen en testen) Service-principal Zie Toegang autoriseren met behulp van service-principals voor ontwikkelaars voor meer informatie over het registreren van de app, het instellen van een Microsoft Entra-groep, het toewijzen van rollen en het configureren van omgevingsvariabelen
Lokale machine (ontwikkelen en testen) Gebruikersidentiteit Zie Toegang autoriseren met behulp van referenties voor ontwikkelaars voor meer informatie over het instellen van een Microsoft Entra-groep, het toewijzen van rollen en aanmelden bij Azure
Gehost in Azure Beheerde identiteit Zie Toegang autoriseren vanuit door Azure gehoste apps met behulp van een beheerde identiteit voor meer informatie over het inschakelen van beheerde identiteiten en het toewijzen van rollen
Gehost buiten Azure (bijvoorbeeld on-premises apps) Service-principal Zie Toegang vanuit on-premises apps autoriseren met behulp van een service-principal voor toepassingen voor meer informatie over het registreren van de app, het toewijzen van rollen en het configureren van omgevingsvariabelen

Toegang autoriseren met DefaultAzureCredential

Een eenvoudige en veilige manier om toegang te verlenen en verbinding te maken met Blob Storage is door een OAuth-token te verkrijgen door een DefaultAzureCredential-exemplaar te maken. Vervolgens kunt u die referentie gebruiken om een BlobServiceClient-object te maken.

In het volgende voorbeeld wordt een BlobServiceClient object gemaakt met behulp van 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

Als uw project asynchrone API's gebruikt, instantieert u BlobServiceClient het volgende: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

Uw app compileren

Wanneer u apps bouwt om te werken met gegevensresources in Azure Blob Storage, communiceert uw code voornamelijk met drie resourcetypen: opslagaccounts, containers en blobs. Voor meer informatie over deze resourcetypen, hoe deze zich verhouden tot elkaar en hoe apps communiceren met resources, raadpleegt u Begrijpen hoe apps communiceren met Blob Storage-gegevensresources.

De volgende handleidingen laten zien hoe u toegang krijgt tot gegevens en specifieke acties uitvoert met behulp van de Azure Storage-clientbibliotheek voor Python:

Guide Beschrijving
Beleid voor opnieuw proberen configureren Implementeer beleid voor opnieuw proberen voor clientbewerkingen.
Blobs kopiƫren Kopieer een blob van de ene locatie naar de andere.
Een container maken Blobcontainers maken.
Een SAS voor gebruikersdelegatie maken Maak een SAS voor gebruikersdelegering voor een container of blob.
Blob-leases maken en beheren Een vergrendeling op een blob tot stand brengen en beheren.
Containerleases maken en beheren Een vergrendeling voor een container tot stand brengen en beheren.
Blobs verwijderen en herstellen Verwijder blobs en herstel voorlopig verwijderde blobs.
Containers verwijderen en herstellen Verwijder containers en herstel voorlopig verwijderde containers.
Blobs downloaden Download blobs met behulp van tekenreeksen, streams en bestandspaden.
Blobs zoeken met behulp van tags Stel tags in en haal ze op en gebruik tags om blobs te zoeken.
Blobs vermelden Geef blobs op verschillende manieren weer.
Containers weergeven Lijst met containers in een account en de verschillende opties die beschikbaar zijn om een vermelding aan te passen.
Eigenschappen en metagegevens beheren (blobs) Eigenschappen en metagegevens voor blobs ophalen en instellen.
Eigenschappen en metagegevens beheren (containers) Eigenschappen en metagegevens voor containers ophalen en instellen.
Prestaties afstemmen voor gegevensoverdracht Optimaliseer de prestaties voor gegevensoverdrachtbewerkingen.
De toegangslaag van een blob instellen of wijzigen Stel de toegangslaag voor een blok-blob in of wijzig deze.
Blobs uploaden Meer informatie over het uploaden van blobs met behulp van tekenreeksen, streams, bestandspaden en andere methoden.