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. Mer information finns i meddelandet om supportavgång.

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-filresurs

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 matar ut namnetvarje 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 av en resurs

Relaterad artikel: Utveckla för Azure Files med Python

Du kan skapa en tidpunktskopia av hela filresursen.

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

Skapa resursögonblicksbild med metadata

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

Lista resurser och ögonblicksbilder

Relaterad artikel: Utveckla för Azure Files med Python

Du kan lista alla ögonblicksbilder för en viss resurs.

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

Bläddra bland resursögonblicksbilder

Relaterad artikel: Utveckla för Azure Files med Python

Du kan bläddra i varje resursögonblicksbild 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 resursögonblicksbild

Relaterad artikel: Utveckla för Azure Files med Python

Du kan ladda ned en fil från en resursö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 resurs

Relaterad artikel: Utveckla för Azure Files med Python

Du kan ta bort en ögonblicksbild av en enskild resurs.

file_service.delete_share(share_name, snapshot=snapshot_id)

Ta bort en fil

Relaterad artikel: Utveckla för Azure Files med Python

Om du vill ta bort en fil anropar du delete_file.

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

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

Ta bort resurs när resursö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 resurs:

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