Ukázky kódu sdílené složky Azure pomocí 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 vyřadili podporu knihoven sady Azure SDK, které nevyhovují aktuálním pokynům sady Azure SDK. Nové knihovny sady Azure SDK se pravidelně aktualizují, aby poskytovaly konzistentní prostředí a posilovaly 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í.

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

Požadavky

Nainstalujte následující balíček pomocí 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á FileService objekt 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ářů, a nemusíte je mít všechny 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')

Odeslá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 služby Azure Files.

Sdílená složka Azure obsahuje alespoň kořenový adresář, ve kterém se můžou 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 streamu. create_file_from_bytes nahraje 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 souboru sunset.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.

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

Pokud chcete stáhnout data 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 zobrazit seznam všech snímků pro určitou sdílenou složku.

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

Procházení snímku sdílené složky

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

Každý snímek sdílené složky můžete procházet a načítat soubory a adresáře z 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í jednoho snímku 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 odstranit soubor, 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, když 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, nelze 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)