diff --git a/Sources/S3Signer/S3Signer+Private.swift b/Sources/S3Signer/S3Signer+Private.swift index 03bf1dc..d06ca51 100755 --- a/Sources/S3Signer/S3Signer+Private.swift +++ b/Sources/S3Signer/S3Signer+Private.swift @@ -127,7 +127,18 @@ extension S3Signer { let region = region ?? config.region - updatedHeaders["host"] = url.host ?? region.host + var hostname: String + + if let host = url.host { + hostname = host + if let port = url.port { + hostname = hostname + ":\(port)" + } + } else { + hostname = region.host + } + + updatedHeaders["host"] = hostname let (canonRequest, fullURL) = try presignedURLCanonRequest(httpMethod, dates: dates, expiration: expiration, url: url, region: region, headers: updatedHeaders)