Introduzione ad Archiviazione BLOB di Azure e Python

Questo articolo illustra come connettersi a Archiviazione BLOB di Azure usando la libreria client Archiviazione BLOB di Azure per Python. Dopo la connessione, il codice può operare su contenitori, BLOB e funzionalità del servizio di archiviazione BLOB.

Esempi di codice | sorgente della libreria PyPi (API Reference Package) (Pacchetto di riferimento | API (PyPi) | Library Code Samples | (Inviare commenti e suggerimenti)

Prerequisiti

Impostare il progetto

Questa sezione illustra come preparare un progetto da usare con la libreria client Archiviazione BLOB di Azure per Python.

Nella directory del progetto installare i pacchetti per le librerie client di Archiviazione BLOB di Azure e Azure Identity usando il comando pip install. Il pacchetto azure-identity è necessario per le connessioni senza password ai servizi di Azure.

pip install azure-storage-blob azure-identity

Aprire quindi il file di codice e aggiungere le istruzioni import necessarie. In questo esempio si aggiunge il codice seguente al file .py :

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

Informazioni sulla libreria client di BLOB:

  • azure.storage.blob: contiene le classi primarie (oggetti client) che è possibile usare per operare sul servizio, sui contenitori e sui BLOB.

Programmazione asincrona

La libreria client Archiviazione BLOB di Azure per Python supporta api sincrone e asincrone. Le API asincrone sono basate sulla libreria asyncio di Python.

Seguire questa procedura per usare le API asincrone nel progetto:

  • Installare un trasporto asincrono, ad esempio aiohttp. È possibile eseguire l'installazione aiohttp insieme azure-storage-blob a usando un comando facoltativo di installazione delle dipendenze. In questo esempio viene usato il comando seguente pip install :

    pip install azure-storage-blob[aio]
    
  • Aprire il file di codice e aggiungere le istruzioni import necessarie. In questo esempio si aggiunge il codice seguente al file .py :

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

    L'istruzione import asyncio è necessaria solo se si usa la libreria nel codice. Viene aggiunto qui per maggiore chiarezza, come negli esempi negli articoli della Guida per sviluppatori viene usata la asyncio libreria.

  • Creare un oggetto client usando async with per iniziare a usare le risorse dati. Solo il client di primo livello deve usare async with, come altri client creati da esso condividono lo stesso pool di connessioni. In questo esempio viene creato un BlobServiceClient oggetto usando async withe quindi viene creato un ContainerClient oggetto :

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

    Per altre informazioni, vedere gli esempi asincroni in Autorizzare l'accesso e connettersi all'archiviazione BLOB.

Informazioni sulla libreria client asincrona blob:

  • azure.storage.blob.aio: contiene le classi primarie che è possibile usare per operare sul servizio, sui contenitori e sui BLOB in modo asincrono.

Autorizzare l'accesso e connettersi ad Archiviazione BLOB

Per connettere un'app all'archiviazione BLOB, creare un'istanza della classe BlobServiceClient . Questo oggetto è il punto di partenza per interagire con le risorse dati a livello di account di archiviazione. È possibile usarlo per operare sull'account di archiviazione e sui relativi contenitori. È anche possibile usare il client del servizio per creare client contenitore o client BLOB, in base alla risorsa da usare.

Per altre informazioni sulla creazione e la gestione di oggetti client, incluse le procedure consigliate, vedere Creare e gestire oggetti client che interagiscono con le risorse dati.

È possibile autorizzare un oggetto BlobServiceClient usando un token di autorizzazione di Microsoft Entra, una chiave di accesso all'account o una firma di accesso condiviso. Per una sicurezza ottimale, Microsoft consiglia di usare Microsoft Entra ID con identità gestite per autorizzare le richieste sui dati BLOB. Per ulteriori informazioni, vedere Autorizzare l'accesso ai BLOB usando Microsoft Entra ID.

Per autorizzare con Microsoft Entra ID è necessario usare un'entità di sicurezza. Il tipo di entità di sicurezza necessario dipende dalla posizione in cui viene eseguita l'app. Usare la tabella seguente come guida:

Posizione in cui viene eseguita l'app Entità di sicurezza principale Linee guida
Computer locale (sviluppo e test) Entità servizio Per informazioni su come registrare l'app, configurare un gruppo di Microsoft Entra, assegnare ruoli e configurare le variabili di ambiente, vedere Autorizzare l'accesso usando le entità servizio per sviluppatori
Computer locale (sviluppo e test) Identità utente Per informazioni su come configurare un gruppo di Microsoft Entra, assegnare ruoli e accedere ad Azure, vedere Autorizzare l'accesso usando le credenziali per sviluppatori
Ospitata in Azure Identità gestita Per informazioni su come abilitare l'identità gestita e assegnare ruoli, vedere Autorizzare l'accesso dalle app ospitate in Azure usando un'identità gestita
Ospitata all'esterno di Azure (ad esempio, app locali) Entità servizio Per informazioni su come registrare l'app, assegnare ruoli e configurare le variabili di ambiente, vedere Autorizzare l'accesso dalle app locali usando un'entità servizio dell'applicazione

Autorizzare l'accesso con DefaultAzureCredential

Un modo semplice e sicuro per autorizzare l'accesso e connettersi ad Archiviazione BLOB consiste nell'ottenere un token OAuth creando un'istanza di DefaultAzureCredential. È quindi possibile usare queste credenziali per creare un oggetto BlobServiceClient.

Nell'esempio seguente viene creato un BlobServiceClient oggetto utilizzando 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

Se il progetto usa API asincrone, creare BlobServiceClient un'istanza usando 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

Compilare l'app

Quando si creano app per lavorare con le risorse dati in Archiviazione BLOB di Azure, il codice interagisce principalmente con tre tipi di risorse: account di archiviazione, contenitori e BLOB. Per altre informazioni su questi tipi di risorse, sul modo in cui sono correlate e sul modo in cui le app interagiscono con le risorse, vedere Informazioni sull'interazione delle app con le risorse dati di Archiviazione BLOB.

Le guide seguenti illustrano come accedere ai dati ed eseguire azioni specifiche usando la libreria client Archiviazione di Azure per Python:

Guida Descrizione
Configurare un criterio di ripetizione dei tentativi Implementare criteri di ripetizione dei tentativi per le operazioni client.
Copiare BLOB Copiare un BLOB da una posizione a un'altra.
Creare un contenitore Creare contenitori BLOB.
Creare una firma di accesso condiviso di delega utente (BLOB) Creare una firma di accesso condiviso di delega utente per un BLOB.
Creare una firma di accesso condiviso di delega utente (contenitori)) Creare una firma di accesso condiviso di delega utente per un contenitore.
Creare e gestire lease di BLOB Impostare e gestire un blocco su un BLOB.
Creare e gestire lease di contenitori Impostare e gestire un blocco su un contenitore.
Eliminare e ripristinare Eliminare i BLOB e ripristinare i BLOB eliminati temporanea.
Eliminare e ripristinare contenitori Eliminare i contenitori e ripristinare i contenitori eliminati temporanea.
Scaricare BLOB Scaricare i BLOB usando stringhe, flussi e percorsi di file.
Trovare BLOB usando tag Impostare e recuperare tag e usare tag per trovare i BLOB.
Elencare i BLOB Elencare i BLOB in modi diversi.
Elencare i contenitori Elencare i contenitori in un account e le varie opzioni disponibili per personalizzare un elenco.
Gestire proprietà e metadati (BLOB) Ottenere e impostare le proprietà e i metadati per i BLOB.
Gestire proprietà e metadati (contenitori) Ottenere e impostare le proprietà e i metadati per i contenitori.
Ottimizzazione delle prestazioni per i trasferimenti di dati Ottimizzare le prestazioni per le operazioni di trasferimento dei dati.
Impostare o modificare il livello di accesso di un BLOB Impostare o modificare il livello di accesso di un BLOB in blocchi.
Caricare i BLOB Informazioni su come caricare BLOB usando stringhe, flussi, percorsi di file e altri metodi.