in src/azure/credential.rs [476:504]
fn string_to_sign(h: &HeaderMap, u: &Url, method: &Method, account: &str) -> String {
// content length must only be specified if != 0
// this is valid from 2015-02-21
let content_length = h
.get(&CONTENT_LENGTH)
.map(|s| s.to_str())
.transpose()
.ok()
.flatten()
.filter(|&v| v != "0")
.unwrap_or_default();
format!(
"{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}{}",
method.as_ref(),
add_if_exists(h, &CONTENT_ENCODING),
add_if_exists(h, &CONTENT_LANGUAGE),
content_length,
add_if_exists(h, &CONTENT_MD5),
add_if_exists(h, &CONTENT_TYPE),
add_if_exists(h, &DATE),
add_if_exists(h, &IF_MODIFIED_SINCE),
add_if_exists(h, &IF_MATCH),
add_if_exists(h, &IF_NONE_MATCH),
add_if_exists(h, &IF_UNMODIFIED_SINCE),
add_if_exists(h, &RANGE),
canonicalize_header(h),
canonicalize_resource(account, u)
)
}