in src/ClientImpl.php [286:314]
private function resolveCloudBox(Config &$config, array &$options)
{
if ($config->getCloudBoxId() !== null) {
$options['region'] = $config->getCloudBoxId();
$options['product'] = Defaults::CLOUD_BOX_PRODUCT;
return;
}
if ($config->getEnableAutoDetectCloudBoxId() == false) {
return;
}
if ($config->getEndpoint() == null) {
return;
}
//cb-***.{region}.oss-cloudbox-control.aliyuncs.com
//cb-***.{region}.oss-cloudbox.aliyuncs.com
$uri = new GuzzleHttp\Psr7\Uri($config->getEndpoint());
$path = !empty($uri->getHost()) ? $uri->getHost() : $uri->getPath();
if (!(substr($path, -strlen('.oss-cloudbox.aliyuncs.com')) === '.oss-cloudbox.aliyuncs.com' || substr($path, -strlen('.oss-cloudbox-control.aliyuncs.com')) === '.oss-cloudbox-control.aliyuncs.com')) {
return;
}
$keys = explode('.', $path);
if ($keys == false ||
count($keys) !== 5 ||
substr($keys[0], 0, strlen('cb-')) !== 'cb-') {
return;
}
$options['region'] = $keys[0];
$options['product'] = Defaults::CLOUD_BOX_PRODUCT;
}