Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Configuration.php « DefaultsMode « src « aws-sdk-php « aws - github.com/nextcloud/3rdparty.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f27955c2389fb8f834a26eebb649b5e97835f791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
namespace Aws\DefaultsMode;

use Aws\DefaultsMode\Exception\ConfigurationException;

class Configuration implements ConfigurationInterface
{
    private $mode;
    private $retryMode;
    private $stsRegionalEndpoints;
    private $s3UsEast1RegionalEndpoints;
    private $connectTimeoutInMillis;
    private $httpRequestTimeoutInMillis;
    private $validModes = [
        'legacy',
        'standard',
        'cross-region',
        'in-region',
        'mobile',
        'auto',
    ];

    public function __construct($mode = 'legacy')
    {
        $mode = strtolower($mode);
        if (!in_array($mode, $this->validModes)) {
            throw new \InvalidArgumentException("'{$mode}' is not a valid mode."
                . " The mode has to be 'legacy', 'standard', 'cross-region', 'in-region',"
                . " 'mobile', or 'auto'.");
        }

        $this->mode = $mode;
        if ($this->mode == 'legacy') {
            return;
        }

        $data = \Aws\load_compiled_json(
            __DIR__ . '/../data/sdk-default-configuration.json'
        );

        $this->retryMode = $data['base']['retryMode'];
        $this->stsRegionalEndpoints = $data['base']['stsRegionalEndpoints'];
        $this->s3UsEast1RegionalEndpoints = $data['base']['s3UsEast1RegionalEndpoints'];
        $this->connectTimeoutInMillis = $data['base']['connectTimeoutInMillis'];

        if (isset($data['modes'][$mode])) {
            $modeData = $data['modes'][$mode];
            foreach ($modeData as $settingName => $settingValue) {
                if (isset($this->$settingName)) {
                    if (isset($settingValue['override'])) {
                        $this->$settingName = $settingValue['override'];
                    } else if (isset($settingValue['multiply'])) {
                        $this->$settingName *= $settingValue['multiply'];
                    } else if (isset($settingValue['add'])) {
                        $this->$settingName += $settingValue['add'];
                    }
                } else {
                    if (isset($settingValue['override'])) {
                        $this->$settingName = $settingValue['override'];
                    }
                }
            }
        }
    }

    /**
     * {@inheritdoc}
     */
    public function getMode()
    {
        return $this->mode;
    }

    /**
     * {@inheritdoc}
     */
    public function getRetryMode()
    {
        return $this->retryMode;
    }

    /**
     * {@inheritdoc}
     */
    public function getStsRegionalEndpoints()
    {
        return $this->stsRegionalEndpoints;
    }

    /**
     * {@inheritdoc}
     */
    public function getS3UsEast1RegionalEndpoints()
    {
        return $this->s3UsEast1RegionalEndpoints;
    }

    /**
     * {@inheritdoc}
     */
    public function getConnectTimeoutInMillis()
    {
        return $this->connectTimeoutInMillis;
    }

    /**
     * {@inheritdoc}
     */
    public function getHttpRequestTimeoutInMillis()
    {
        return $this->httpRequestTimeoutInMillis;
    }

    /**
     * {@inheritdoc}
     */
    public function toArray()
    {
        return [
            'mode'                                       => $this->getMode(),
            'retry_mode'                                 => $this->getRetryMode(),
            'sts_regional_endpoints'                     => $this->getStsRegionalEndpoints(),
            's3_us_east_1_regional_endpoint'             => $this->getS3UsEast1RegionalEndpoints(),
            'connect_timeout_in_milliseconds'            => $this->getConnectTimeoutInMillis(),
            'http_request_timeout_in_milliseconds'       => $this->getHttpRequestTimeoutInMillis(),
        ];
    }

}