class AzureBlob::Client
def signer
def signer @signer ||= begin no_access_key = access_key.nil? || access_key&.empty? using_managed_identities = no_access_key && !principal_id.nil? || use_managed_identities if !using_managed_identities && no_access_key raise AzureBlob::Error.new( "`access_key` cannot be empty. To use managed identities instead, pass a `principal_id` or set `use_managed_identities` to true." ) end using_managed_identities ? AzureBlob::EntraIdSigner.new(account_name:, host:, principal_id:) : AzureBlob::SharedKeySigner.new(account_name:, access_key:, host:) end end