Operace systému souborů na Azure Data Lake Storage Gen1 pomocí Pythonu
V tomto článku se dozvíte, jak pomocí sady Python SDK provádět operace systému souborů na Azure Data Lake Storage Gen1. Pokyny k provádění operací správy účtů na Data Lake Storage Gen1 pomocí Pythonu najdete v tématu Operace správy účtů na Data Lake Storage Gen1 pomocí Pythonu.
Požadavky
Python. Python si můžete stáhnout tady. Tento článek používá Python verze 3.6.2.
Předplatné Azure. Viz Získání bezplatné zkušební verze Azure.
Azure Data Lake Storage účet Gen1. Postupujte podle pokynů v tématu Začínáme s Azure Data Lake Storage Gen1 pomocí Azure Portal.
Instalace modulů
Pokud chcete pracovat s Data Lake Storage Gen1 pomocí Pythonu, musíte nainstalovat tři moduly.
- Modul
azure-mgmt-resource
, který zahrnuje moduly Azure pro Active Directory atd. - Modul
azure-mgmt-datalake-store
, který zahrnuje operace správy účtů Azure Data Lake Storage Gen1. Další informace o tomto modulu najdete v referenčních informacích k modulu azure-mgmt-datalake-store. - Modul
azure-datalake-store
, který zahrnuje operace Azure Data Lake Storage systému souborů Gen1. Další informace o tomto modulu najdete v referenčních informacích k modulu azure-datalake-store file-system.
Pomocí následujících příkazů tyto moduly nainstalujte.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Vytvoření nové aplikace v Pythonu
Pomocí integrovaného vývojového prostředí (IDE) podle vašeho výběru vytvořte novou aplikaci v Pythonu, například mysample.py.
Přidáním následujících řádků importujte požadované moduly.
## Use this only for Azure AD service-to-service authentication from azure.common.credentials import ServicePrincipalCredentials ## Use this only for Azure AD end-user authentication from azure.common.credentials import UserPassCredentials ## Use this only for Azure AD multi-factor authentication from msrestazure.azure_active_directory import AADTokenCredentials ## Required for Azure Data Lake Storage Gen1 account management from azure.mgmt.datalake.store import DataLakeStoreAccountManagementClient from azure.mgmt.datalake.store.models import DataLakeStoreAccount ## Required for Azure Data Lake Storage Gen1 filesystem management from azure.datalake.store import core, lib, multithread ## Common Azure imports from azure.mgmt.resource.resources import ResourceManagementClient from azure.mgmt.resource.resources.models import ResourceGroup ## Use these as needed for your application import logging, getpass, pprint, uuid, time
Uložte změny v souboru mysample.py.
Authentication
V této části si řekneme o různých způsobech ověřování pomocí Microsoft Entra ID. Dostupné jsou následující možnosti:
- Informace o ověřování koncových uživatelů pro vaši aplikaci najdete v tématu Ověřování koncových uživatelů pomocí Data Lake Storage Gen1 pomocí Pythonu.
- Informace o ověřování mezi službami pro vaši aplikaci najdete v tématu Ověřování mezi službami pomocí Data Lake Storage Gen1 pomocí Pythonu.
Vytvoření klienta systému souborů
Následující fragment kódu nejprve vytvoří klienta účtu Data Lake Storage Gen1. Používá objekt klienta k vytvoření účtu Data Lake Storage Gen1. Nakonec vytvoří objekt klienta systému souborů.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Vytvoření adresáře
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Nahrání souboru
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Stažení souboru
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Odstranění adresáře
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)