use azure_core::TransportOptions; use azure_storage::StorageCredentials; use azure_storage_blobs::prelude::BlobServiceClient; use std::env::var; pub fn initialize(transaction_name: impl Into) -> azure_core::Result { let (account_name, storage_credentials) = if var(mock_transport::TESTING_MODE_KEY).as_deref() == Ok(mock_transport::TESTING_MODE_RECORD) { let account_name = var("STORAGE_ACCOUNT").expect("missing env STORAGE_ACCOUNT"); let account_key = var("STORAGE_ACCESS_KEY").expect("missing env STORAGE_ACCESS_KEY"); let storage_credentials = StorageCredentials::access_key(account_name.clone(), account_key); (account_name, storage_credentials) } else { ( String::new(), StorageCredentials::bearer_token(String::new()), ) }; let transport_options = TransportOptions::new_custom_policy( mock_transport::new_mock_transport(transaction_name.into()), ); let client = BlobServiceClient::builder(account_name, storage_credentials) .transport(transport_options) .blob_service_client(); Ok(client) }