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
- Sottoscrizione di Azure: creare un account gratuito
- Account di archiviazione di Azure: creare un account di archiviazione
- Python 3.8+
Impostare il progetto
Questa sezione illustra come preparare un progetto da usare con la libreria client di 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 di importazione necessari. 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
insiemeazure-storage-blob
a usando un comando facoltativo di installazione delle dipendenze. In questo esempio viene usato il comando seguentepip 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 laasyncio
libreria.Creare un oggetto client usando
async with
per iniziare a usare le risorse dati. Solo il client di primo livello deve usareasync with
, come altri client creati da esso condividono lo stesso pool di connessioni. In questo esempio viene creato unBlobServiceClient
oggetto usandoasync with
e quindi viene creato unContainerClient
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'applicazione ad 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 protezione 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 da usare 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 | 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 applicazioni 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 | Implementare criteri di ripetizione 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 | Creare una firma di accesso condiviso di delega utente per un contenitore o un BLOB. |
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 BLOB | 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 di AzCopy 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. |