code: function populateURI(req) {
      var httpRequest = req.httpRequest;
      var b = req.params.Bucket;
      var service = req.service;
      var endpoint = httpRequest.endpoint;
      if (b) {
        if (!service.pathStyleBucketName(b)) {
          if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {
            if (service.config.useDualstack) {
              endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';
            } else {
              endpoint.hostname = b + '.s3-accelerate.amazonaws.com';
            }
          } else if (!service.config.s3BucketEndpoint) {
            endpoint.hostname =
              b + '.' + endpoint.hostname;
          }
  
          var port = endpoint.port;
          if (port !== 80 && port !== 443) {
            endpoint.host = endpoint.hostname + ':' +
              endpoint.port;
          } else {
            endpoint.host = endpoint.hostname;
          }
  
          httpRequest.virtualHostedBucket = b; // needed for signing the request
          service.removeVirtualHostedBucketFromPath(req);
        }
      }
    }
docs: S3 prefers dns-compatible bucket names to be moved from the uri path
  to the hostname as a sub-domain.  This is not possible, even for dns-compat
  buckets when using SSL and the bucket name contains a dot ('.').  The
  ssl wildcard certificate is only 1-level deep.
  
  @api private