Operacje systemu plików w usłudze Azure Data Lake Storage Gen1 przy użyciu języka Python
W tym artykule dowiesz się, jak używać zestawu SDK języka Python do wykonywania operacji systemu plików na Azure Data Lake Storage Gen1. Aby uzyskać instrukcje dotyczące wykonywania operacji zarządzania kontami na Data Lake Storage Gen1 przy użyciu języka Python, zobacz Operacje zarządzania kontami na Data Lake Storage Gen1 przy użyciu języka Python.
Wymagania wstępne
Python. Możesz pobrać środowisko Python tutaj. W tym artykule używany jest język Python 3.6.2.
Subskrypcja platformy Azure. Zobacz temat Uzyskiwanie bezpłatnej wersji próbnej platformy Azure.
konto usługi Azure Data Lake Storage Gen1. Postępuj zgodnie z instrukcjami w temacie Rozpoczynanie pracy z Azure Data Lake Storage Gen1 przy użyciu Azure Portal.
Instalacja modułów
Aby pracować z Data Lake Storage Gen1 przy użyciu języka Python, należy zainstalować trzy moduły.
- Moduł
azure-mgmt-resource
, który obejmuje moduły platformy Azure dla usługi Active Directory itp. - Moduł
azure-mgmt-datalake-store
zawierający operacje zarządzania kontami Azure Data Lake Storage Gen1. Aby uzyskać więcej informacji na temat tego modułu, zobacz dokumentację modułu azure-mgmt-datalake-store. - Moduł
azure-datalake-store
zawierający operacje systemu plików Azure Data Lake Storage Gen1. Aby uzyskać więcej informacji na temat tego modułu, zobacz dokumentację modułu azure-datalake-store file-system.
Użyj następujących poleceń, aby zainstalować moduły.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Tworzenie nowej aplikacji w języku Python
W wybranym środowisku IDE utwórz nową aplikację w języku Python, na przykład mysample.py.
Dodaj następujące wiersze, aby zaimportować wymagane moduły
## 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
Zapisz zmiany w aplikacji mysample.py.
Authentication
W tej sekcji omówiono różne sposoby uwierzytelniania za pomocą Tożsamość Microsoft Entra. Dostępne opcje:
- Aby uzyskać informacje na temat uwierzytelniania użytkownika końcowego dla aplikacji, zobacz Uwierzytelnianie użytkowników końcowych za pomocą Data Lake Storage Gen1 przy użyciu języka Python.
- Aby zapoznać się z uwierzytelnianiem typu usługa dla aplikacji, zobacz Uwierzytelnianie typu usługa-usługa z Data Lake Storage Gen1 przy użyciu języka Python.
Tworzenie klienta systemu plików
Poniższy fragment kodu najpierw tworzy klienta konta Data Lake Storage Gen1. Używa obiektu klienta do utworzenia konta Data Lake Storage Gen1. Na koniec fragment kodu tworzy obiekt klienta systemu plików.
## Declare variables
subscriptionId = 'FILL-IN-HERE'
adlsAccountName = 'FILL-IN-HERE'
## Create a filesystem client object
adlsFileSystemClient = core.AzureDLFileSystem(adlCreds, store_name=adlsAccountName)
Tworzenie katalogu
## Create a directory
adlsFileSystemClient.mkdir('/mysampledirectory')
Przekazywanie pliku
## Upload a file
multithread.ADLUploader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Pobieranie pliku
## Download a file
multithread.ADLDownloader(adlsFileSystemClient, lpath='C:\\data\\mysamplefile.txt.out', rpath='/mysampledirectory/mysamplefile.txt', nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304)
Usuwanie katalogu
## Delete a directory
adlsFileSystemClient.rm('/mysampledirectory', recursive=True)