public string GetUrl(string bucketName, string key)
{
var uriString = new StringBuilder();
uriString.Append("http://");
if (UseSubdomains)
uriString.Append(bucketName).Append('.');
uriString.Append(Host);
if (CustomPort != 0)
uriString.Append(':').Append(CustomPort);
uriString.Append('/');
if (!UseSubdomains)
uriString.Append(bucketName).Append('/');
// EscapeDataString allows keys to have any characters, including "+".
uriString.Append(Uri.EscapeDataString(key));
return uriString.ToString();
}