Ukázky kódu sdílené složky Azure s využitím klientských knihoven Pythonu verze 2

Tento článek ukazuje ukázky kódu, které používají verzi 2 klientské knihovny sdílené složky Azure pro Python.

31. března 2023 jsme ukončili podporu knihoven Sady Azure SDK, které nevyhovují aktuálním pokynům sady Azure SDK. Nové knihovny Sady Azure SDK se pravidelně aktualizují, aby bylo zajištění konzistentního prostředí a posílení stavu zabezpečení. Doporučujeme přejít na nové knihovny Sady Azure SDK, abyste mohli využívat nové funkce a důležité aktualizace zabezpečení.

Starší knihovny je sice možné používat i po 31. březnu 2023, ale od Microsoftu už nebudou dostávat oficiální podporu a aktualizace. Další informace najdete v oznámení o vyřazení podpory.

Požadavky

Pomocí nástroje nainstalujte následující balíček pip install:

pip install azure-storage-file

Přidejte následující import příkaz:

from azure.storage.file import FileService

Vytvoření sdílené složky Azure

Související článek: Vývoj pro Azure Files pomocí Pythonu

Následující příklad kódu používá objekt FileService k vytvoření sdílené složky, pokud neexistuje.

file_service.create_share('myshare')

Vytvoření adresáře

Související článek: Vývoj pro Azure Files pomocí Pythonu

Úložiště můžete uspořádat tak, že soubory umístíte do podadresářů místo toho, abyste je všechny měli v kořenovém adresáři.

Následující kód vytvoří podadresář s názvem sampledir v kořenovém adresáři.

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

Nahrání souboru

Související článek: Vývoj pro Azure Files pomocí Pythonu

V této části se dozvíte, jak nahrát soubor z místního úložiště do Azure Files.

Sdílená složka Azure obsahuje přinejmenším kořenový adresář, ve kterém se mohou nacházet soubory. K vytvoření souboru a nahrání dat použijte některou z následujících metod:

Tyto metody provádějí potřebné bloky dat, pokud velikost dat překročí 64 MiB.

create_file_from_path nahraje obsah souboru ze zadané cesty a create_file_from_stream nahraje obsah z již otevřeného souboru nebo datového proudu. create_file_from_bytes odešle pole bajtů a create_file_from_text nahraje zadanou textovou hodnotu pomocí zadaného kódování (výchozí hodnota je UTF-8).

Následující příklad nahraje obsah souborusunset.png do souboru 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'))

Vytvoření výčtu souborů a adresářů ve sdílené složce Azure

Související článek: Vývoj pro Azure Files pomocí Pythonu

Pokud chcete zobrazit seznam souborů a adresářů ve sdílené složce, použijte metodu list_directories_and_files . Tato metoda vrací generátor. Následující kód vypíše název každého souboru a adresáře ve sdílené složce do konzoly nástroje .

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

Stažení souboru

Související článek: Vývoj pro Azure Files pomocí Pythonu

Ke stažení dat ze souboru použijte některou z následujících metod:

Tyto metody provádějí potřebné bloky dat, pokud velikost dat překročí 64 MiB.

Následující příklad ukazuje použití get_file_to_path ke stažení obsahu souboru myfile a jeho uložení do out-sunset.png souboru.

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

Vytvoření snímku sdílené složky

Související článek: Vývoj pro Azure Files pomocí Pythonu

Můžete vytvořit kopii celé sdílené složky k určitému bodu v čase.

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

Vytvoření snímku sdílené složky s metadaty

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

Výpis sdílených složek a snímků

Související článek: Vývoj pro Azure Files pomocí Pythonu

Můžete vypsat všechny snímky pro určitou sdílenou složku.

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

Procházet snímek sdílené složky

Související článek: Vývoj pro Azure Files pomocí Pythonu

Jednotlivé snímky sdílené složky můžete procházet a načíst soubory a adresáře od tohoto bodu v čase.

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

Získání souboru ze snímku sdílené složky

Související článek: Vývoj pro Azure Files pomocí Pythonu

Soubor si můžete stáhnout ze snímku sdílené složky. To vám umožní obnovit předchozí verzi souboru.

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

Odstranění snímku jedné sdílené složky

Související článek: Vývoj pro Azure Files pomocí Pythonu

Můžete odstranit jeden snímek sdílené složky.

file_service.delete_share(share_name, snapshot=snapshot_id)

Odstranění souboru

Související článek: Vývoj pro Azure Files pomocí Pythonu

Pokud chcete soubor odstranit, zavolejte delete_file.

Následující příklad kódu ukazuje, jak odstranit soubor:

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

Odstranění sdílené složky, pokud existují snímky sdílené složky

Související článek: Vývoj pro Azure Files pomocí Pythonu

Sdílenou složku, která obsahuje snímky, se nedá odstranit, pokud nejsou nejprve odstraněny všechny snímky.

Následující příklad kódu ukazuje, jak odstranit sdílenou složku:

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