1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-09 12:06:01 +01:00

Merge pull request #13825 from obsidiansystems/slight-optimize-s3ToHttpsURL

`ParsedS3URL::toHttpsUrl` Slight optimize
This commit is contained in:
John Ericson 2025-08-25 17:51:09 -04:00 committed by GitHub
commit ca94905593
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -68,8 +68,10 @@ try {
ParsedURL ParsedS3URL::toHttpsUrl() const
{
std::string regionStr = region.value_or("us-east-1");
std::string schemeStr = scheme.value_or("https");
auto toView = [](const auto & x) { return std::string_view{x}; };
auto regionStr = region.transform(toView).value_or("us-east-1");
auto schemeStr = scheme.transform(toView).value_or("https");
// Handle endpoint configuration using std::visit
return std::visit(
@ -77,7 +79,7 @@ ParsedURL ParsedS3URL::toHttpsUrl() const
[&](const std::monostate &) {
// No custom endpoint, use standard AWS S3 endpoint
return ParsedURL{
.scheme = schemeStr,
.scheme = std::string{schemeStr},
.authority = ParsedURL::Authority{.host = "s3." + regionStr + ".amazonaws.com"},
.path = (CanonPath::root / bucket / CanonPath(key)).abs(),
};
@ -85,7 +87,7 @@ ParsedURL ParsedS3URL::toHttpsUrl() const
[&](const ParsedURL::Authority & auth) {
// Endpoint is just an authority (hostname/port)
return ParsedURL{
.scheme = schemeStr,
.scheme = std::string{schemeStr},
.authority = auth,
.path = (CanonPath::root / bucket / CanonPath(key)).abs(),
};