azure_storage_datalake 0.9.0

Azure Data Lake Storage Gen2 crate from the Azure SDK for Rust
Documentation
use azure_storage::prelude::StorageCredentials;
use azure_storage_datalake::prelude::*;

pub async fn create_data_lake_client(transaction_name: &str) -> azure_core::Result<DataLakeClient> {
    let account_name = (std::env::var(mock_transport::TESTING_MODE_KEY).as_deref()
        == Ok(mock_transport::TESTING_MODE_RECORD))
    .then(get_account)
    .unwrap_or_default();

    let account_key = (std::env::var(mock_transport::TESTING_MODE_KEY).as_deref()
        == Ok(mock_transport::TESTING_MODE_RECORD))
    .then(get_key)
    .unwrap_or_default();

    let transport_options = azure_core::TransportOptions::new_custom_policy(
        mock_transport::new_mock_transport(transaction_name.into()),
    );

    let storage_credentials = StorageCredentials::Key(account_name.clone(), account_key);
    Ok(DataLakeClient::builder(account_name, storage_credentials)
        .transport(transport_options)
        .build())
}

fn get_account() -> String {
    std::env::var("ADLSGEN2_STORAGE_ACCOUNT")
        .expect("Set env variable ADLSGEN2_STORAGE_ACCOUNT first!")
}

fn get_key() -> String {
    std::env::var("ADLSGEN2_STORAGE_ACCESS_KEY")
        .expect("Set env variable ADLSGEN2_STORAGE_ACCESS_KEY first!")
}