async def set_metadata_on_file_system(self): # Instantiate a DataLakeServiceClient using a connection string from azure.storage.filedatalake.aio import DataLakeServiceClient datalake_service_client = DataLakeServiceClient.from_connection_string( self.connection_string) async with datalake_service_client: # Instantiate a FileSystemClient file_system_client = datalake_service_client.get_file_system_client( "mymetadatafilesystemsync") try: # Create new File System await file_system_client.create_file_system() # [START set_file_system_metadata] # Create key, value pairs for metadata metadata = {'type': 'test'} # Set metadata on the file system await file_system_client.set_file_system_metadata( metadata=metadata) # [END set_file_system_metadata] # Get file system properties properties = await file_system_client.get_file_system_properties( ) finally: # Delete file system await file_system_client.delete_file_system()
async def acquire_lease_on_file_system(self): # Instantiate a DataLakeServiceClient using a connection string # [START create_data_lake_service_client_from_conn_str] from azure.storage.filedatalake.aio import DataLakeServiceClient datalake_service_client = DataLakeServiceClient.from_connection_string( self.connection_string) # [END create_data_lake_service_client_from_conn_str] async with datalake_service_client: # Instantiate a FileSystemClient file_system_client = datalake_service_client.get_file_system_client( "myleasefilesystem") # Create new File System try: await file_system_client.create_file_system() except ResourceExistsError: pass # [START acquire_lease_on_file_system] # Acquire a lease on the file system lease = await file_system_client.acquire_lease() # Delete file system by passing in the lease await file_system_client.delete_file_system(lease=lease)
async def file_system_sample(self): # [START create_file_system_client_from_service] # Instantiate a DataLakeServiceClient using a connection string from azure.storage.filedatalake.aio import DataLakeServiceClient datalake_service_client = DataLakeServiceClient.from_connection_string( self.connection_string) async with datalake_service_client: # Instantiate a FileSystemClient file_system_client = datalake_service_client.get_file_system_client( "mynewfilesystems") # [END create_file_system_client_from_service] try: # [START create_file_system] await file_system_client.create_file_system() # [END create_file_system] # [START get_file_system_properties] properties = await file_system_client.get_file_system_properties( ) # [END get_file_system_properties] finally: # [START delete_file_system] await file_system_client.delete_file_system()
async def get_directory_client_from_file_system(self): # Instantiate a DataLakeServiceClient using a connection string from azure.storage.filedatalake.aio import DataLakeServiceClient datalake_service_client = DataLakeServiceClient.from_connection_string( self.connection_string) async with datalake_service_client: # Instantiate a FileSystemClient file_system_client = datalake_service_client.get_file_system_client( "mydirectoryfilesystem") # Create new File System try: await file_system_client.create_file_system() except ResourceExistsError: pass # [START get_directory_client_from_file_system] # Get the DataLakeDirectoryClient from the FileSystemClient to interact with a specific file directory_client = file_system_client.get_directory_client( "mynewdirectory") # [END get_directory_client_from_file_system] # Delete file system await file_system_client.delete_file_system()
async def list_paths_in_file_system(self): # Instantiate a DataLakeServiceClient using a connection string from azure.storage.filedatalake.aio import DataLakeServiceClient datalake_service_client = DataLakeServiceClient.from_connection_string( self.connection_string) async with datalake_service_client: # Instantiate a FileSystemClient file_system_client = datalake_service_client.get_file_system_client( "mypathfilesystem") # Create new File System await file_system_client.create_file_system() # [START upload_file_to_file_system] file_client = file_system_client.get_file_client("myfile") await file_client.create_file() with open(SOURCE_FILE, "rb") as data: length = data.tell() await file_client.append_data(data, 0) await file_client.flush_data(length) # [END upload_file_to_file_system] # [START get_paths_in_file_system] path_list = file_system_client.get_paths() async for path in path_list: print(path.name + '\n') # [END get_paths_in_file_system] # Delete file system await file_system_client.delete_file_system()
async def data_lake_service_sample(): # Instantiate a DataLakeServiceClient using a connection string # [START create_datalake_service_client] from azure.storage.filedatalake.aio import DataLakeServiceClient datalake_service_client = DataLakeServiceClient.from_connection_string( connection_string) # [END create_datalake_service_client] # Instantiate a DataLakeServiceClient Azure Identity credentials. # [START create_datalake_service_client_oauth] from azure.identity.aio import ClientSecretCredential token_credential = ClientSecretCredential( active_directory_tenant_id, active_directory_application_id, active_directory_application_secret, ) datalake_service_client = DataLakeServiceClient( "https://{}.dfs.core.windows.net".format(account_name), credential=token_credential) # [END create_datalake_service_client_oauth] async with datalake_service_client: # get user delegation key # [START get_user_delegation_key] from datetime import datetime, timedelta user_delegation_key = await datalake_service_client.get_user_delegation_key( datetime.utcnow(), datetime.utcnow() + timedelta(hours=1)) # [END get_user_delegation_key] # Create file systems # [START create_file_system_from_service_client] await datalake_service_client.create_file_system("filesystem") # [END create_file_system_from_service_client] file_system_client = await datalake_service_client.create_file_system( "anotherfilesystem") # List file systems # [START list_file_systems] file_systems = datalake_service_client.list_file_systems() async for file_system in file_systems: print(file_system.name) # [END list_file_systems] # Get Clients from DataLakeServiceClient file_system_client = datalake_service_client.get_file_system_client( file_system_client.file_system_name) # [START get_directory_client_from_service_client] directory_client = datalake_service_client.get_directory_client( file_system_client.file_system_name, "mydirectory") # [END get_directory_client_from_service_client] # [START get_file_client_from_service_client] file_client = datalake_service_client.get_file_client( file_system_client.file_system_name, "myfile") # [END get_file_client_from_service_client] # Create file and set properties metadata = {'hello': 'world', 'number': '42'} from azure.storage.filedatalake import ContentSettings content_settings = ContentSettings(content_language='spanish', content_disposition='inline') await file_client.create_file(content_settings=content_settings) await file_client.set_metadata(metadata=metadata) file_props = await file_client.get_file_properties() print(file_props.metadata) # Create file/directory and set properties await directory_client.create_directory( content_settings=content_settings, metadata=metadata) dir_props = await directory_client.get_directory_properties() print(dir_props.metadata) # Delete File Systems # [START delete_file_system_from_service_client] await datalake_service_client.delete_file_system("filesystem") # [END delete_file_system_from_service_client] await file_system_client.delete_file_system() await token_credential.close()