Esempi di codice di Condivisione file di Azure con librerie client Python versione 2

Questo articolo illustra gli esempi di codice che usano la versione 2 della libreria client di Condivisione file di Azure per Python.

Il 31 marzo 2023 è stato ritirato il supporto per le librerie di Azure SDK che non sono conformi alle linee guida correnti di Azure SDK. Le nuove librerie di Azure SDK vengono aggiornate regolarmente per favorire esperienze coerenti e rafforzare il comportamento di sicurezza. È consigliabile passare alle nuove librerie di Azure SDK per sfruttare le nuove funzionalità e gli aggiornamenti critici della sicurezza.

Anche se le librerie precedenti possono ancora essere usate oltre il 31 marzo 2023, non riceveranno più supporto e aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio sul ritiro del supporto.

Prerequisiti

Installare il pacchetto seguente usando pip install:

pip install azure-storage-file

Aggiungere l'istruzione import seguente:

from azure.storage.file import FileService

Creare una condivisione file di Azure

Articolo correlato: Sviluppare per File di Azure con Python

Nell'esempio di codice seguente viene utilizzato un oggetto FileService per creare la condivisione, se non esiste.

file_service.create_share('myshare')

Creare una directory

Articolo correlato: Sviluppare per File di Azure con Python

È possibile organizzare l'archiviazione inserendo i file all'interno di sottodirectory anziché inserirli tutti nella directory radice.

Il codice seguente creerà una sottodirectory denominata sampledir nella directory radice.

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

Caricare un file

Articolo correlato: Sviluppare per File di Azure con Python

In questa sezione si apprenderà come caricare un file dalla risorsa di archiviazione locale in File di Azure.

Una condivisione file di Azure contiene almeno una directory radice in cui possono risiedere i file. Per creare un file e caricare i dati, usare uno dei metodi seguenti:

Questi metodi eseguono la suddivisione in blocchi necessaria quando le dimensioni dei dati superano 64 MiB.

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 file in the root directory, so we specify None for the directory_name
    'myfile',
    'sunset.png',
    content_settings=ContentSettings(content_type='image/png'))

Enumerare file e directory in una condivisione file di Azure

Articolo correlato: Sviluppare per File di Azure con Python

Per elencare i file e le directory in una condivisione, utilizzare 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)

Scaricare un file

Articolo correlato: Sviluppare per File di Azure con Python

Per scaricare dati da un file, usare uno dei metodi seguenti:

Questi metodi eseguono la suddivisione in blocchi necessaria quando le dimensioni dei dati superano 64 MiB.

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')

Creare uno snapshot della condivisione

Articolo correlato: Sviluppare per File di Azure con Python

È possibile creare una copia temporizzata dell'intera condivisione file.

snapshot = file_service.snapshot_share(share_name)
snapshot_id = snapshot.snapshot

Creare uno snapshot di condivisione con metadati

metadata = {"foo": "bar"}
snapshot = file_service.snapshot_share(share_name, metadata=metadata)

Elencare condivisioni e snapshot

Articolo correlato: Sviluppare per File di Azure con Python

È possibile elencare tutti gli snapshot per una particolare condivisione.

shares = list(file_service.list_shares(include_snapshots=True))

Esplorare uno snapshot di condivisione

Articolo correlato: Sviluppare per File di Azure con Python

È possibile esplorare ogni snapshot di condivisione per recuperare file e directory da quel momento.

directories_and_files = list(
    file_service.list_directories_and_files(share_name, snapshot=snapshot_id))

Ottenere file da uno snapshot di condivisione

Articolo correlato: Sviluppare per File di Azure con Python

È possibile scaricare un file da uno snapshot di condivisione. In questo modo è possibile ripristinare una versione precedente di un file.

with open(FILE_PATH, 'wb') as stream:
    file = file_service.get_file_to_stream(
        share_name, directory_name, file_name, stream, snapshot=snapshot_id)

Eliminare un singolo snapshot di condivisione

Articolo correlato: Sviluppare per File di Azure con Python

È possibile eliminare un singolo snapshot di condivisione.

file_service.delete_share(share_name, snapshot=snapshot_id)

Eliminare un file

Articolo correlato: Sviluppare per File di Azure con Python

Per eliminare un file, chiamare delete_file.

Nell'esempio di codice seguente viene illustrato come eliminare un file:

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

Eliminare una condivisione in presenza di snapshot di condivisione

Articolo correlato: Sviluppare per File di Azure con Python

Una condivisione contenente snapshot non può essere eliminata se prima non vengono eliminati tutti gli snapshot.

L'esempio di codice seguente illustra come eliminare una condivisione:

file_service.delete_share(share_name, delete_snapshots=DeleteSnapshot.Include)