in src/S3/S3EndpointMiddleware.php [140:174]
private function endpointPatternDecider(
CommandInterface $command,
RequestInterface $request
) {
$accelerate = isset($command['@use_accelerate_endpoint'])
? $command['@use_accelerate_endpoint'] : $this->accelerateByDefault;
$dualStack = isset($command['@use_dual_stack_endpoint'])
? $command['@use_dual_stack_endpoint'] : $this->dualStackByDefault;
$pathStyle = isset($command['@use_path_style_endpoint'])
? $command['@use_path_style_endpoint'] : $this->pathStyleByDefault;
if ($accelerate && $dualStack) {
// When try to enable both for operations excluded from s3-accelerate,
// only dualstack endpoints will be enabled.
return $this->canAccelerate($command)
? self::ACCELERATE_DUALSTACK
: self::DUALSTACK;
}
if ($accelerate && $this->canAccelerate($command)) {
return self::ACCELERATE;
}
if ($dualStack) {
return self::DUALSTACK;
}
if (!$pathStyle
&& self::isRequestHostStyleCompatible($command, $request)
) {
return self::HOST_STYLE;
}
return self::PATH_STYLE;
}