Share via


Introduzione a 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 Blob Archiviazione.

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 pip install comando . 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 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 al BLOB Archiviazione.

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 all'Archiviazione BLOB

Per connettere un'applicazione 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, a seconda della 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 BlobServiceClient oggetto usando un token di autorizzazione Microsoft Entra, una chiave di accesso all'account o una firma di accesso condiviso.

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'applicazione. Usare la tabella seguente come guida:

Posizione in cui viene eseguita l'applicazione Entità di sicurezza principale Materiale sussidiario
Computer locale (sviluppo e test) Entità servizio Per informazioni su come registrare l'app, configurare un gruppo 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 Microsoft Entra, assegnare ruoli e accedere ad Azure, vedere Autorizzare l'accesso usando le credenziali per sviluppatori
Ospitato 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
Ospitato 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 ai Archiviazione BLOB consiste nel ottenere un token OAuth creando un'istanza DefaultAzureCredential. È quindi possibile usare tale credenziale 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'applicazione

Quando si creano applicazioni per lavorare con le risorse di 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, sulla correlazione tra loro e sul modo in cui le app interagiscono con le risorse, vedere Informazioni sull'interazione delle app con le risorse di dati Archiviazione BLOB.

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

Guida Descrizione
Creare un contenitore Creare contenitori.
Eliminare e ripristinare contenitori Eliminare i contenitori e, se l'eliminazione temporanea è abilitata, ripristinare i contenitori eliminati.
Elencare i contenitori Elencare i contenitori in un account e le varie opzioni disponibili per personalizzare un elenco.
Gestire proprietà e metadati (contenitori) Ottenere e impostare proprietà e metadati per i contenitori.
Creare e gestire lease di contenitori Stabilire e gestire un blocco in un contenitore.
Creare e gestire lease di BLOB Stabilire e gestire un blocco in un BLOB.
Caricare i BLOB Informazioni su come caricare BLOB usando stringhe, flussi, percorsi di file e altri metodi.
Scaricare BLOB Scaricare i BLOB usando stringhe, flussi e percorsi di file.
Copiare BLOB Copiare un BLOB da una posizione a un'altra.
Elencare i BLOB Elencare i BLOB in modi diversi.
Eliminare e ripristinare Eliminare i BLOB e, se l'eliminazione temporanea è abilitata, ripristinare i BLOB eliminati.
Trovare BLOB con tag Impostare e recuperare tag e usare i tag per trovare i BLOB.
Gestire proprietà e metadati (BLOB) Ottenere e impostare proprietà e metadati per i BLOB.
Impostare o modificare il livello di accesso di un BLOB Impostare o modificare il livello di accesso per un BLOB in blocchi.