static string BuildCanonicalizedHeaders(IDictionary<string, string> headers)
{
var sb = new StringBuilder(256);
foreach (var key in headers.Keys.OrderBy(x => x, StringComparer.OrdinalIgnoreCase))
{
var lowerKey = key.ToLowerInvariant();
if (!lowerKey.StartsWith("x-amz-", StringComparison.Ordinal))
continue;
sb.Append(String.Concat(lowerKey, ":", headers[key], "\n"));
}
return sb.ToString();
}