class AzureBlob::SharedKeySigner

def authorization_header(uri:, verb:, headers: {})

def authorization_header(uri:, verb:, headers: {})
  canonicalized_headers = CanonicalizedHeaders.new(headers)
  canonicalized_resource = CanonicalizedResource.new(uri, account_name)
  to_sign = [
    verb,
    *sanitize_headers(headers).fetch_values(
      :"Content-Encoding",
      :"Content-Language",
      :"Content-Length",
      :"Content-MD5",
      :"Content-Type",
      :"Date",
      :"If-Modified-Since",
      :"If-Match",
      :"If-None-Match",
      :"If-Unmodified-Since",
      :"Range"
    ) { nil },
    canonicalized_headers,
    canonicalized_resource,
  ].join("\n")
  "SharedKey #{account_name}:#{sign(to_sign)}"
end