Dela via


Kodexempel för Azure File Share med python version 2-klientbibliotek

Den här artikeln visar kodexempel som använder version 2 av Azure File Share-klientbiblioteket för Python.

Den 31 mars 2023 drog vi tillbaka stödet för Azure SDK-bibliotek som inte följer de aktuella Riktlinjerna för Azure SDK. De nya Azure SDK-biblioteken uppdateras regelbundet för att skapa konsekventa upplevelser och stärka din säkerhetsstatus. Vi rekommenderar att du övergår till de nya Azure SDK-biblioteken för att dra nytta av de nya funktionerna och viktiga säkerhetsuppdateringar.

Även om de äldre biblioteken fortfarande kan användas efter den 31 mars 2023 får de inte längre officiell support och uppdateringar från Microsoft. För mer information, se meddelandet om avslutandet av support.

Förutsättningar

Installera följande paket med pip install.

pip install azure-storage-file

Lägg till följande import instruktion:

from azure.storage.file import FileService

Skapa en Azure-filresursdelning

Relaterad artikel: Utveckla för Azure Files med Python

I följande kodexempel används ett FileService-objekt för att skapa resursen om den inte finns.

file_service.create_share('myshare')

Skapa en katalog

Relaterad artikel: Utveckla för Azure Files med Python

Du kan ordna lagring genom att placera filer i underkataloger i stället för att ha alla i rotkatalogen.

Koden nedan skapar en underkatalog med namnet sampledir under rotkatalogen.

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

Ladda upp en fil

Relaterad artikel: Utveckla för Azure Files med Python

I det här avsnittet får du lära dig hur du laddar upp en fil från lokal lagring till Azure Files.

En Azure-filresurs innehåller åtminstone en rotkatalog där filer kan finnas. Om du vill skapa en fil och ladda upp data använder du någon av följande metoder:

Dessa metoder utför den segmentering som krävs när datastorleken överskrider 64 MiB.

create_file_from_path laddar upp innehållet i en fil från den angivna sökvägen och create_file_from_stream laddar upp innehållet från en redan öppen fil/dataström. create_file_from_bytes laddar upp en matris med byte och create_file_from_text laddar upp det angivna textvärdet med den angivna kodningen (standardvärdet UTF-8).

I följande exempel överförs innehållet i sunset.png-filen till myfile-filen.

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

Räkna upp filer och kataloger i en Azure-filresurs

Relaterad artikel: Utveckla för Azure Files med Python

Om du vill visa en lista över filer och kataloger i en resurs använder du metoden list_directories_and_files . Den här metoden returnerar en generator. Följande kod skriver ut namnet på varje fil och katalog i en resurs till konsolen.

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

Ladda ned en fil

Relaterad artikel: Utveckla för Azure Files med Python

Om du vill ladda ned data från en fil använder du någon av följande metoder:

Dessa metoder utför den segmentering som krävs när datastorleken överskrider 64 MiB.

Följande exempel visar hur du använder get_file_to_path för att ladda ned innehållet i myfile-filen och lagra den i den out-sunset.png filen.

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

Skapa en ögonblicksbild

Relaterad artikel: Utveckla för Azure Files med Python

Du kan skapa en ögonblicksbild av hela fildelningen.

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

Skapa snapshot av delning med metadata

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

Lista andelar och ögonblicksbilder

Relaterad artikel: Utveckla för Azure Files med Python

Du kan lista alla snapshots för en viss mapp.

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

Bläddra bland delade ögonblicksbilder

Relaterad artikel: Utveckla för Azure Files med Python

Du kan bläddra i varje delningssnapshot för att hämta filer och kataloger från den tidpunkten.

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

Hämta fil från delningsögonblicksbild

Relaterad artikel: Utveckla för Azure Files med Python

Du kan ladda ner en fil från en delningsögonblicksbild. På så sätt kan du återställa en tidigare version av en fil.

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

Ta bort en ögonblicksbild av en enskild delning

Relaterad artikel: Utveckla för Azure Files med Python

Du kan ta bort en enskild delningsögonblicksbild.

file_service.delete_share(share_name, snapshot=snapshot_id)

Ta bort en fil

Relaterad artikel: Utveckla för Azure Files med Python

Anropa delete_file för att ta bort en fil.

Följande kodexempel visar hur du tar bort en fil:

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

Ta bort delning när delningsögonblicksbilder finns

Relaterad artikel: Utveckla för Azure Files med Python

En resurs som innehåller ögonblicksbilder kan inte tas bort om inte alla ögonblicksbilder tas bort först.

Följande kodexempel visar hur du tar bort en delning.

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