Eseguire lo sviluppo per Archiviazione file di Azure con Python

Suggerimento

Provare Esplora archivi Microsoft Azure

Microsoft Azure Storage Explorer è un'app autonoma gratuita di Microsoft che consente di rappresentare facilmente dati di Archiviazione di Azure in Windows, macOS e Linux.

Informazioni sull'esercitazione

Questa esercitazione illustra le nozioni base per l'uso di Python per sviluppare applicazioni o servizi che usano Archiviazione file di Azure per archiviare i dati dei file. In questa esercitazione verrà creata una semplice applicazione console e verrà mostrato come eseguire le azioni di base con Python e Archiviazione file di Azure:

  • Creare condivisioni file di Azure
  • Creare directory
  • Enumerare file e directory in una condivisione file di Azure
  • Caricare, scaricare ed eliminare un file
Nota

Poiché Archiviazione file di Azure è accessibile tramite SMB, è possibile scrivere semplici applicazioni che accedono alla condivisione file di Azure usando le classi e le funzioni standard I/O di Python. Questo articolo descrive come scrivere applicazioni che usano Azure Storage Python SDK, che usa l'API REST di archiviazione file Azure per comunicare con Archiviazione file di Azure.

Configurare l'applicazione per usare Archiviazione file di Azure

Aggiungere il codice seguente vicino all'inizio del file di origine Python da cui si desidera accedere all'archiviazione di Azure a livello di codice.

from azure.storage.file import FileService

Configurare una connessione all'archiviazione file di Azure

L'oggetto FileService consente di usare condivisioni, directory e file. Il codice seguente crea un oggetto FileService usando il nome e la chiave dell'account di archiviazione. Sostituire <myaccount> e <mykey> con il nome e la chiave dell'account.

file_service = FileService(account_name='myaccount', account_key='mykey')

Creare una condivisione file di Azure

Nell'esempio di codice seguente, è possibile usare un oggetto FileService per creare la condivisione, se non esiste.

file_service.create_share('myshare')

Creare una directory

È inoltre possibile organizzare l'archiviazione inserendo i file all'interno di sottodirectory anziché inserirli tutti nella directory radice. L'archiviazione file di Azure permette di creare tutte le directory consentite dall'account. Il codice riportato di seguito creerà una sottodirectory denominata sampledir nella directory radice.

file_service.create_directory('myshare', 'sampledir')

Enumerare file e directory in una condivisione file di Azure

Per elencare i file e le directory di una condivisione, usare il metodo list_directories_and_files. Questo metodo restituisce un generatore. Il codice seguente consente di inviare alla console il valore name di ogni file e directory in una condivisione.

generator = file_service.list_directories_and_files('myshare')
for file_or_dir in generator:
    print(file_or_dir.name)

Caricare un file

Una condivisione file di Azure contiene almeno una directory radice in cui possono risiedere i file. In questa sezione verrà illustrato come caricare un file dall'archiviazione locale nella directory radice di una condivisione.

Per creare un file e caricare dati, usare i metodi create_file_from_path, create_file_from_stream, create_file_from_bytes o create_file_from_text. Questi sono metodi di carattere generale che eseguono il blocco dei dati necessario quando le dimensioni superano i 64 MB.

create_file_from_path carica i contenuti di un file dal percorso specificato, mentre create_file_from_stream carica i contenuti da un file/flusso già aperto. create_file_from_bytes carica un array di byte, mentre create_file_from_text carica il valore di testo specificato usando la codifica specificata (l'impostazione predefinita è UTF-8).

Nell'esempio seguente viene caricato il contenuto del file sunset.png nel file myfile.

from azure.storage.file import ContentSettings
file_service.create_file_from_path(
    'myshare',
    None, # We want to create this blob in the root directory, so we specify None for the directory_name
    'myfile',
    'sunset.png',
    content_settings=ContentSettings(content_type='image/png'))

Scaricare un file

Per scaricare i dati da un file, usare get_file_to_path, get_file_to_stream, get_file_to_bytes o get_file_to_text. Questi sono metodi di carattere generale che eseguono il blocco dei dati necessario quando le dimensioni superano i 64 MB.

Nell'esempio seguente viene illustrato l'uso di get_file_to_path per scaricare il contenuto del file myfile e archiviarlo nel file out-sunset.png.

file_service.get_file_to_path('myshare', None, 'myfile', 'out-sunset.png')

Eliminare un file

Per eliminare un file, infine, chiamare delete_file.

file_service.delete_file('myshare', None, 'myfile')

Passaggi successivi

Dopo aver appreso come interagire con l'archiviazione di File di Azure con Python, seguire i collegamenti seguenti per ulteriori informazioni.