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)