diff options
Diffstat (limited to 'apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client')
8 files changed, 0 insertions, 1235 deletions
diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php deleted file mode 100644 index c9ee86a66ff..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AbstractClient.php +++ /dev/null @@ -1,272 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Aws; -use Aws\Common\Credentials\CredentialsInterface; -use Aws\Common\Credentials\NullCredentials; -use Aws\Common\Enum\ClientOptions as Options; -use Aws\Common\Exception\InvalidArgumentException; -use Aws\Common\Exception\TransferException; -use Aws\Common\Signature\EndpointSignatureInterface; -use Aws\Common\Signature\SignatureInterface; -use Aws\Common\Signature\SignatureListener; -use Aws\Common\Waiter\WaiterClassFactory; -use Aws\Common\Waiter\CompositeWaiterFactory; -use Aws\Common\Waiter\WaiterFactoryInterface; -use Aws\Common\Waiter\WaiterConfigFactory; -use Guzzle\Common\Collection; -use Guzzle\Http\Exception\CurlException; -use Guzzle\Service\Client; -use Guzzle\Service\Description\ServiceDescriptionInterface; - -/** - * Abstract AWS client - */ -abstract class AbstractClient extends Client implements AwsClientInterface -{ - /** - * @var CredentialsInterface AWS credentials - */ - protected $credentials; - - /** - * @var SignatureInterface Signature implementation of the service - */ - protected $signature; - - /** - * @var WaiterFactoryInterface Factory used to create waiter classes - */ - protected $waiterFactory; - - /** - * {@inheritdoc} - */ - public static function getAllEvents() - { - return array_merge(Client::getAllEvents(), array( - 'client.region_changed', - 'client.credentials_changed', - )); - } - - /** - * @param CredentialsInterface $credentials AWS credentials - * @param SignatureInterface $signature Signature implementation - * @param Collection $config Configuration options - * - * @throws InvalidArgumentException if an endpoint provider isn't provided - */ - public function __construct(CredentialsInterface $credentials, SignatureInterface $signature, Collection $config) - { - // Bootstrap with Guzzle - parent::__construct($config->get(Options::BASE_URL), $config); - $this->credentials = $credentials; - $this->signature = $signature; - - // Make sure the user agent is prefixed by the SDK version - $this->setUserAgent('aws-sdk-php2/' . Aws::VERSION, true); - - // Add the event listener so that requests are signed before they are sent - $dispatcher = $this->getEventDispatcher(); - if (!$credentials instanceof NullCredentials) { - $dispatcher->addSubscriber(new SignatureListener($credentials, $signature)); - } - - if ($backoff = $config->get(Options::BACKOFF)) { - $dispatcher->addSubscriber($backoff, -255); - } - } - - public function __call($method, $args) - { - if (substr($method, 0, 3) === 'get' && substr($method, -8) === 'Iterator') { - // Allow magic method calls for iterators (e.g. $client->get<CommandName>Iterator($params)) - $commandOptions = isset($args[0]) ? $args[0] : null; - $iteratorOptions = isset($args[1]) ? $args[1] : array(); - return $this->getIterator(substr($method, 3, -8), $commandOptions, $iteratorOptions); - } elseif (substr($method, 0, 9) == 'waitUntil') { - // Allow magic method calls for waiters (e.g. $client->waitUntil<WaiterName>($params)) - return $this->waitUntil(substr($method, 9), isset($args[0]) ? $args[0]: array()); - } else { - return parent::__call(ucfirst($method), $args); - } - } - - /** - * Get an endpoint for a specific region from a service description - * @deprecated This function will no longer be updated to work with new regions. - */ - public static function getEndpoint(ServiceDescriptionInterface $description, $region, $scheme) - { - $service = $description->getData('serviceFullName'); - // Lookup the region in the service description - if (!($regions = $description->getData('regions'))) { - throw new InvalidArgumentException("No regions found in the {$service} description"); - } - // Ensure that the region exists for the service - if (!isset($regions[$region])) { - throw new InvalidArgumentException("{$region} is not a valid region for {$service}"); - } - // Ensure that the scheme is valid - if ($regions[$region][$scheme] == false) { - throw new InvalidArgumentException("{$scheme} is not a valid URI scheme for {$service} in {$region}"); - } - - return $scheme . '://' . $regions[$region]['hostname']; - } - - public function getCredentials() - { - return $this->credentials; - } - - public function setCredentials(CredentialsInterface $credentials) - { - $formerCredentials = $this->credentials; - $this->credentials = $credentials; - - // Dispatch an event that the credentials have been changed - $this->dispatch('client.credentials_changed', array( - 'credentials' => $credentials, - 'former_credentials' => $formerCredentials, - )); - - return $this; - } - - public function getSignature() - { - return $this->signature; - } - - public function getRegions() - { - return $this->serviceDescription->getData('regions'); - } - - public function getRegion() - { - return $this->getConfig(Options::REGION); - } - - public function setRegion($region) - { - $config = $this->getConfig(); - $formerRegion = $config->get(Options::REGION); - $global = $this->serviceDescription->getData('globalEndpoint'); - $provider = $config->get('endpoint_provider'); - - if (!$provider) { - throw new \RuntimeException('No endpoint provider configured'); - } - - // Only change the region if the service does not have a global endpoint - if (!$global || $this->serviceDescription->getData('namespace') === 'S3') { - - $endpoint = call_user_func( - $provider, - array( - 'scheme' => $config->get(Options::SCHEME), - 'region' => $region, - 'service' => $config->get(Options::SERVICE) - ) - ); - - $this->setBaseUrl($endpoint['endpoint']); - $config->set(Options::BASE_URL, $endpoint['endpoint']); - $config->set(Options::REGION, $region); - - // Update the signature if necessary - $signature = $this->getSignature(); - if ($signature instanceof EndpointSignatureInterface) { - /** @var $signature EndpointSignatureInterface */ - $signature->setRegionName($region); - } - - // Dispatch an event that the region has been changed - $this->dispatch('client.region_changed', array( - 'region' => $region, - 'former_region' => $formerRegion, - )); - } - - return $this; - } - - public function waitUntil($waiter, array $input = array()) - { - $this->getWaiter($waiter, $input)->wait(); - - return $this; - } - - public function getWaiter($waiter, array $input = array()) - { - return $this->getWaiterFactory()->build($waiter) - ->setClient($this) - ->setConfig($input); - } - - public function setWaiterFactory(WaiterFactoryInterface $waiterFactory) - { - $this->waiterFactory = $waiterFactory; - - return $this; - } - - public function getWaiterFactory() - { - if (!$this->waiterFactory) { - $clientClass = get_class($this); - // Use a composite factory that checks for classes first, then config waiters - $this->waiterFactory = new CompositeWaiterFactory(array( - new WaiterClassFactory(substr($clientClass, 0, strrpos($clientClass, '\\')) . '\\Waiter') - )); - if ($this->getDescription()) { - $waiterConfig = $this->getDescription()->getData('waiters') ?: array(); - $this->waiterFactory->addFactory(new WaiterConfigFactory($waiterConfig)); - } - } - - return $this->waiterFactory; - } - - public function getApiVersion() - { - return $this->serviceDescription->getApiVersion(); - } - - /** - * {@inheritdoc} - * @throws \Aws\Common\Exception\TransferException - */ - public function send($requests) - { - try { - return parent::send($requests); - } catch (CurlException $e) { - $wrapped = new TransferException($e->getMessage(), null, $e); - $wrapped->setCurlHandle($e->getCurlHandle()) - ->setCurlInfo($e->getCurlInfo()) - ->setError($e->getError(), $e->getErrorNo()) - ->setRequest($e->getRequest()); - throw $wrapped; - } - } -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AwsClientInterface.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AwsClientInterface.php deleted file mode 100644 index 4c0579f64ad..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/AwsClientInterface.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Credentials\CredentialsInterface; -use Aws\Common\Signature\SignatureInterface; -use Aws\Common\Waiter\WaiterFactoryInterface; -use Aws\Common\Waiter\WaiterInterface; -use Guzzle\Service\ClientInterface; - -/** - * Interface that all AWS clients implement - */ -interface AwsClientInterface extends ClientInterface -{ - /** - * Returns the AWS credentials associated with the client - * - * @return CredentialsInterface - */ - public function getCredentials(); - - /** - * Sets the credentials object associated with the client - * - * @param CredentialsInterface $credentials Credentials object to use - * - * @return self - */ - public function setCredentials(CredentialsInterface $credentials); - - /** - * Returns the signature implementation used with the client - * - * @return SignatureInterface - */ - public function getSignature(); - - /** - * Get a list of available regions and region data - * - * @return array - */ - public function getRegions(); - - /** - * Get the name of the region to which the client is configured to send requests - * - * @return string - */ - public function getRegion(); - - /** - * Change the region to which the client is configured to send requests - * - * @param string $region Name of the region - * - * @return self - */ - public function setRegion($region); - - /** - * Get the waiter factory being used by the client - * - * @return WaiterFactoryInterface - */ - public function getWaiterFactory(); - - /** - * Set the waiter factory to use with the client - * - * @param WaiterFactoryInterface $waiterFactory Factory used to create waiters - * - * @return self - */ - public function setWaiterFactory(WaiterFactoryInterface $waiterFactory); - - /** - * Wait until a resource is available or an associated waiter returns true - * - * @param string $waiter Name of the waiter - * @param array $input Values used as input for the underlying operation and to control the waiter - * - * @return self - */ - public function waitUntil($waiter, array $input = array()); - - /** - * Get a named waiter object - * - * @param string $waiter Name of the waiter - * @param array $input Values used as input for the underlying operation and to control the waiter - * - * @return WaiterInterface - */ - public function getWaiter($waiter, array $input = array()); - - /** - * Get the API version of the client (e.g. 2006-03-01) - * - * @return string - */ - public function getApiVersion(); -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php deleted file mode 100644 index b34a67ffd92..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ClientBuilder.php +++ /dev/null @@ -1,467 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Credentials\Credentials; -use Aws\Common\Credentials\CredentialsInterface; -use Aws\Common\Credentials\NullCredentials; -use Aws\Common\Enum\ClientOptions as Options; -use Aws\Common\Exception\ExceptionListener; -use Aws\Common\Exception\InvalidArgumentException; -use Aws\Common\Exception\NamespaceExceptionFactory; -use Aws\Common\Exception\Parser\DefaultXmlExceptionParser; -use Aws\Common\Exception\Parser\ExceptionParserInterface; -use Aws\Common\Iterator\AwsResourceIteratorFactory; -use Aws\Common\RulesEndpointProvider; -use Aws\Common\Signature\EndpointSignatureInterface; -use Aws\Common\Signature\SignatureInterface; -use Aws\Common\Signature\SignatureV2; -use Aws\Common\Signature\SignatureV3Https; -use Aws\Common\Signature\SignatureV4; -use Guzzle\Common\Collection; -use Guzzle\Plugin\Backoff\BackoffPlugin; -use Guzzle\Plugin\Backoff\CurlBackoffStrategy; -use Guzzle\Plugin\Backoff\ExponentialBackoffStrategy; -use Guzzle\Plugin\Backoff\HttpBackoffStrategy; -use Guzzle\Plugin\Backoff\TruncatedBackoffStrategy; -use Guzzle\Service\Description\ServiceDescription; -use Guzzle\Service\Resource\ResourceIteratorClassFactory; -use Guzzle\Log\LogAdapterInterface; -use Guzzle\Log\ClosureLogAdapter; -use Guzzle\Plugin\Backoff\BackoffLogger; - -/** - * Builder for creating AWS service clients - */ -class ClientBuilder -{ - /** - * @var array Default client config - */ - protected static $commonConfigDefaults = array('scheme' => 'https'); - - /** - * @var array Default client requirements - */ - protected static $commonConfigRequirements = array(Options::SERVICE_DESCRIPTION); - - /** - * @var string The namespace of the client - */ - protected $clientNamespace; - - /** - * @var array The config options - */ - protected $config = array(); - - /** - * @var array The config defaults - */ - protected $configDefaults = array(); - - /** - * @var array The config requirements - */ - protected $configRequirements = array(); - - /** - * @var ExceptionParserInterface The Parser interface for the client - */ - protected $exceptionParser; - - /** - * @var array Array of configuration data for iterators available for the client - */ - protected $iteratorsConfig = array(); - - /** - * Factory method for creating the client builder - * - * @param string $namespace The namespace of the client - * - * @return ClientBuilder - */ - public static function factory($namespace = null) - { - return new static($namespace); - } - - /** - * Constructs a client builder - * - * @param string $namespace The namespace of the client - */ - public function __construct($namespace = null) - { - $this->clientNamespace = $namespace; - } - - /** - * Sets the config options - * - * @param array|Collection $config The config options - * - * @return ClientBuilder - */ - public function setConfig($config) - { - $this->config = $this->processArray($config); - - return $this; - } - - /** - * Sets the config options' defaults - * - * @param array|Collection $defaults The default values - * - * @return ClientBuilder - */ - public function setConfigDefaults($defaults) - { - $this->configDefaults = $this->processArray($defaults); - - return $this; - } - - /** - * Sets the required config options - * - * @param array|Collection $required The required config options - * - * @return ClientBuilder - */ - public function setConfigRequirements($required) - { - $this->configRequirements = $this->processArray($required); - - return $this; - } - - /** - * Sets the exception parser. If one is not provided the builder will use - * the default XML exception parser. - * - * @param ExceptionParserInterface $parser The exception parser - * - * @return ClientBuilder - */ - public function setExceptionParser(ExceptionParserInterface $parser) - { - $this->exceptionParser = $parser; - - return $this; - } - - /** - * Set the configuration for the client's iterators - * - * @param array $config Configuration data for client's iterators - * - * @return ClientBuilder - */ - public function setIteratorsConfig(array $config) - { - $this->iteratorsConfig = $config; - - return $this; - } - - /** - * Performs the building logic using all of the parameters that have been - * set and falling back to default values. Returns an instantiate service - * client with credentials prepared and plugins attached. - * - * @return AwsClientInterface - * @throws InvalidArgumentException - */ - public function build() - { - // Resolve configuration - $config = Collection::fromConfig( - $this->config, - array_merge(self::$commonConfigDefaults, $this->configDefaults), - (self::$commonConfigRequirements + $this->configRequirements) - ); - - if (!isset($config['endpoint_provider'])) { - $config['endpoint_provider'] = RulesEndpointProvider::fromDefaults(); - } - - // Resolve the endpoint, signature, and credentials - $description = $this->updateConfigFromDescription($config); - $signature = $this->getSignature($description, $config); - $credentials = $this->getCredentials($config); - - // Resolve exception parser - if (!$this->exceptionParser) { - $this->exceptionParser = new DefaultXmlExceptionParser(); - } - - // Resolve backoff strategy - $backoff = $config->get(Options::BACKOFF); - if ($backoff === null) { - $backoff = new BackoffPlugin( - // Retry failed requests up to 3 times if it is determined that the request can be retried - new TruncatedBackoffStrategy(3, - // Retry failed requests with 400-level responses due to throttling - new ThrottlingErrorChecker($this->exceptionParser, - // Retry failed requests due to transient network or cURL problems - new CurlBackoffStrategy(null, - // Retry failed requests with 500-level responses - new HttpBackoffStrategy(array(500, 503, 509), - // Retry requests that failed due to expired credentials - new ExpiredCredentialsChecker($this->exceptionParser, - new ExponentialBackoffStrategy() - ) - ) - ) - ) - ) - ); - $config->set(Options::BACKOFF, $backoff); - } - - if ($backoff) { - $this->addBackoffLogger($backoff, $config); - } - - // Determine service and class name - $clientClass = 'Aws\Common\Client\DefaultClient'; - if ($this->clientNamespace) { - $serviceName = substr($this->clientNamespace, strrpos($this->clientNamespace, '\\') + 1); - $clientClass = $this->clientNamespace . '\\' . $serviceName . 'Client'; - } - - /** @var $client AwsClientInterface */ - $client = new $clientClass($credentials, $signature, $config); - $client->setDescription($description); - - // Add exception marshaling so that more descriptive exception are thrown - if ($this->clientNamespace) { - $exceptionFactory = new NamespaceExceptionFactory( - $this->exceptionParser, - "{$this->clientNamespace}\\Exception", - "{$this->clientNamespace}\\Exception\\{$serviceName}Exception" - ); - $client->addSubscriber(new ExceptionListener($exceptionFactory)); - } - - // Add the UserAgentPlugin to append to the User-Agent header of requests - $client->addSubscriber(new UserAgentListener()); - - // Filters used for the cache plugin - $client->getConfig()->set( - 'params.cache.key_filter', - 'header=date,x-amz-date,x-amz-security-token,x-amzn-authorization' - ); - - // Set the iterator resource factory based on the provided iterators config - $client->setResourceIteratorFactory(new AwsResourceIteratorFactory( - $this->iteratorsConfig, - new ResourceIteratorClassFactory($this->clientNamespace . '\\Iterator') - )); - - // Disable parameter validation if needed - if ($config->get(Options::VALIDATION) === false) { - $params = $config->get('command.params') ?: array(); - $params['command.disable_validation'] = true; - $config->set('command.params', $params); - } - - return $client; - } - - /** - * Add backoff logging to the backoff plugin if needed - * - * @param BackoffPlugin $plugin Backoff plugin - * @param Collection $config Configuration settings - * - * @throws InvalidArgumentException - */ - protected function addBackoffLogger(BackoffPlugin $plugin, Collection $config) - { - // The log option can be set to `debug` or an instance of a LogAdapterInterface - if ($logger = $config->get(Options::BACKOFF_LOGGER)) { - $format = $config->get(Options::BACKOFF_LOGGER_TEMPLATE); - if ($logger === 'debug') { - $logger = new ClosureLogAdapter(function ($message) { - trigger_error($message . "\n"); - }); - } elseif (!($logger instanceof LogAdapterInterface)) { - throw new InvalidArgumentException( - Options::BACKOFF_LOGGER . ' must be set to `debug` or an instance of ' - . 'Guzzle\\Common\\Log\\LogAdapterInterface' - ); - } - // Create the plugin responsible for logging exponential backoff retries - $logPlugin = new BackoffLogger($logger); - // You can specify a custom format or use the default - if ($format) { - $logPlugin->setTemplate($format); - } - $plugin->addSubscriber($logPlugin); - } - } - - /** - * Ensures that an array (e.g. for config data) is actually in array form - * - * @param array|Collection $array The array data - * - * @return array - * @throws InvalidArgumentException if the arg is not an array or Collection - */ - protected function processArray($array) - { - if ($array instanceof Collection) { - $array = $array->getAll(); - } - - if (!is_array($array)) { - throw new InvalidArgumentException('The config must be provided as an array or Collection.'); - } - - return $array; - } - - /** - * Update a configuration object from a service description - * - * @param Collection $config Config to update - * - * @return ServiceDescription - * @throws InvalidArgumentException - */ - protected function updateConfigFromDescription(Collection $config) - { - $description = $config->get(Options::SERVICE_DESCRIPTION); - if (!($description instanceof ServiceDescription)) { - // Inject the version into the sprintf template if it is a string - if (is_string($description)) { - $description = sprintf($description, $config->get(Options::VERSION)); - } - $description = ServiceDescription::factory($description); - $config->set(Options::SERVICE_DESCRIPTION, $description); - } - - if (!$config->get(Options::SERVICE)) { - $config->set(Options::SERVICE, $description->getData('endpointPrefix')); - } - - if ($iterators = $description->getData('iterators')) { - $this->setIteratorsConfig($iterators); - } - - // Make sure a valid region is set - $region = $config->get(Options::REGION); - $global = $description->getData('globalEndpoint'); - - if (!$global && !$region) { - throw new InvalidArgumentException( - 'A region is required when using ' . $description->getData('serviceFullName') - ); - } elseif ($global && (!$region || $description->getData('namespace') !== 'S3')) { - $region = 'us-east-1'; - $config->set(Options::REGION, 'us-east-1'); - } - - if (!$config->get(Options::BASE_URL)) { - $endpoint = call_user_func( - $config->get('endpoint_provider'), - array( - 'scheme' => $config->get(Options::SCHEME), - 'region' => $region, - 'service' => $config->get(Options::SERVICE) - ) - ); - $config->set(Options::BASE_URL, $endpoint['endpoint']); - - // Set a signature if one was not explicitly provided. - if (!$config->hasKey(Options::SIGNATURE) - && isset($endpoint['signatureVersion']) - ) { - $config->set(Options::SIGNATURE, $endpoint['signatureVersion']); - } - } - - return $description; - } - - /** - * Return an appropriate signature object for a a client based on the - * "signature" configuration setting, or the default signature specified in - * a service description. The signature can be set to a valid signature - * version identifier string or an instance of Aws\Common\Signature\SignatureInterface. - * - * @param ServiceDescription $description Description that holds a signature option - * @param Collection $config Configuration options - * - * @return SignatureInterface - * @throws InvalidArgumentException - */ - protected function getSignature(ServiceDescription $description, Collection $config) - { - // If a custom signature has not been provided, then use the default - // signature setting specified in the service description. - $signature = $config->get(Options::SIGNATURE) ?: $description->getData('signatureVersion'); - - if (is_string($signature)) { - if ($signature == 'v4') { - $signature = new SignatureV4(); - } elseif ($signature == 'v2') { - $signature = new SignatureV2(); - } elseif ($signature == 'v3https') { - $signature = new SignatureV3Https(); - } else { - throw new InvalidArgumentException("Invalid signature type: {$signature}"); - } - } elseif (!($signature instanceof SignatureInterface)) { - throw new InvalidArgumentException('The provided signature is not ' - . 'a signature version string or an instance of ' - . 'Aws\\Common\\Signature\\SignatureInterface'); - } - - // Allow a custom service name or region value to be provided - if ($signature instanceof EndpointSignatureInterface) { - - // Determine the service name to use when signing - $signature->setServiceName($config->get(Options::SIGNATURE_SERVICE) - ?: $description->getData('signingName') - ?: $description->getData('endpointPrefix')); - - // Determine the region to use when signing requests - $signature->setRegionName($config->get(Options::SIGNATURE_REGION) ?: $config->get(Options::REGION)); - } - - return $signature; - } - - protected function getCredentials(Collection $config) - { - $credentials = $config->get(Options::CREDENTIALS); - if ($credentials === false) { - $credentials = new NullCredentials(); - } elseif (!$credentials instanceof CredentialsInterface) { - $credentials = Credentials::factory($config); - } - - return $credentials; - } -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/DefaultClient.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/DefaultClient.php deleted file mode 100644 index 1dc276d3ccb..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/DefaultClient.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Enum\ClientOptions as Options; -use Guzzle\Common\Collection; - -/** - * Generic client for interacting with an AWS service - */ -class DefaultClient extends AbstractClient -{ - /** - * Factory method to create a default client using an array of configuration options. - * - * The following array keys and values are available options: - * - * Credential options ((`key`, `secret`, and optional `token`) OR `credentials` is required): - * - * - key: AWS Access Key ID - * - secret: AWS secret access key - * - credentials: You can optionally provide a custom `Aws\Common\Credentials\CredentialsInterface` object - * - token: Custom AWS security token to use with request authentication. Please note that not all services accept temporary credentials. See http://docs.aws.amazon.com/STS/latest/UsingSTS/UsingTokens.html - * - token.ttd: UNIX timestamp for when the custom credentials expire - * - credentials.cache.key: Optional custom cache key to use with the credentials - * - credentials.client: Pass this option to specify a custom `Guzzle\Http\ClientInterface` to use if your credentials require a HTTP request (e.g. RefreshableInstanceProfileCredentials) - * - * Region and endpoint options (Some services do not require a region while others do. Check the service specific user guide documentation for details): - * - * - region: Region name (e.g. 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', etc...) - * - scheme: URI Scheme of the base URL (e.g. 'https', 'http') used when base_url is not supplied - * - base_url: Allows you to specify a custom endpoint instead of building one from the region and scheme - * - * Generic client options: - * - * - signature: Overrides the signature used by the client. Clients will always choose an appropriate default signature. However, it can be useful to override this with a custom setting. This can be set to "v4", "v3https", "v2" or an instance of Aws\Common\Signature\SignatureInterface. - * - ssl.certificate_authority: Set to true to use the bundled CA cert or pass the full path to an SSL certificate bundle - * - curl.options: Associative of CURLOPT_* cURL options to add to each request - * - client.backoff.logger: `Guzzle\Log\LogAdapterInterface` object used to log backoff retries. Use 'debug' to emit PHP warnings when a retry is issued. - * - client.backoff.logger.template: Optional template to use for exponential backoff log messages. See `Guzzle\Plugin\Backoff\BackoffLogger` for formatting information. - * - * @param array|Collection $config Client configuration data - * - * @return self - */ - public static function factory($config = array()) - { - return ClientBuilder::factory() - ->setConfig($config) - ->setConfigDefaults(array(Options::SCHEME => 'https')) - ->build(); - } -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ExpiredCredentialsChecker.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ExpiredCredentialsChecker.php deleted file mode 100644 index d20f7f829d1..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ExpiredCredentialsChecker.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Credentials\AbstractRefreshableCredentials; -use Aws\Common\Client\AwsClientInterface; -use Aws\Common\Exception\Parser\ExceptionParserInterface; -use Guzzle\Http\Exception\HttpException; -use Guzzle\Http\Message\RequestInterface; -use Guzzle\Http\Message\Response; -use Guzzle\Plugin\Backoff\BackoffStrategyInterface; -use Guzzle\Plugin\Backoff\AbstractBackoffStrategy; - -/** - * Backoff logic that handles retrying requests when credentials expire - */ -class ExpiredCredentialsChecker extends AbstractBackoffStrategy -{ - /** - * @var array Array of known retrying exception codes - */ - protected $retryable = array( - 'RequestExpired' => true, - 'ExpiredTokenException' => true, - 'ExpiredToken' => true - ); - - /** - * @var ExceptionParserInterface Exception parser used to parse exception responses - */ - protected $exceptionParser; - - public function __construct(ExceptionParserInterface $exceptionParser, BackoffStrategyInterface $next = null) { - $this->exceptionParser = $exceptionParser; - $this->next = $next; - } - - public function makesDecision() - { - return true; - } - - protected function getDelay($retries, RequestInterface $request, Response $response = null, HttpException $e = null) - { - if ($response && $response->isClientError()) { - - $parts = $this->exceptionParser->parse($request, $response); - if (!isset($this->retryable[$parts['code']]) || !$request->getClient()) { - return null; - } - - /** @var $client AwsClientInterface */ - $client = $request->getClient(); - // Only retry if the credentials can be refreshed - if (!($client->getCredentials() instanceof AbstractRefreshableCredentials)) { - return null; - } - - // Resign the request using new credentials - $client->getSignature()->signRequest($request, $client->getCredentials()->setExpiration(-1)); - - // Retry immediately with no delay - return 0; - } - } -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ThrottlingErrorChecker.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ThrottlingErrorChecker.php deleted file mode 100644 index a35cbcb157c..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/ThrottlingErrorChecker.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Exception\Parser\ExceptionParserInterface; -use Guzzle\Http\Exception\HttpException; -use Guzzle\Http\Message\RequestInterface; -use Guzzle\Http\Message\Response; -use Guzzle\Plugin\Backoff\BackoffStrategyInterface; -use Guzzle\Plugin\Backoff\AbstractBackoffStrategy; - -/** - * Backoff logic that handles throttling exceptions from services - */ -class ThrottlingErrorChecker extends AbstractBackoffStrategy -{ - /** @var array Whitelist of exception codes (as indexes) that indicate throttling */ - protected static $throttlingExceptions = array( - 'RequestLimitExceeded' => true, - 'Throttling' => true, - 'ThrottlingException' => true, - 'ProvisionedThroughputExceededException' => true, - 'RequestThrottled' => true, - ); - - /** - * @var ExceptionParserInterface Exception parser used to parse exception responses - */ - protected $exceptionParser; - - public function __construct(ExceptionParserInterface $exceptionParser, BackoffStrategyInterface $next = null) - { - $this->exceptionParser = $exceptionParser; - if ($next) { - $this->setNext($next); - } - } - - /** - * {@inheritdoc} - */ - public function makesDecision() - { - return true; - } - - /** - * {@inheritdoc} - */ - protected function getDelay( - $retries, - RequestInterface $request, - Response $response = null, - HttpException $e = null - ) { - if ($response && $response->isClientError()) { - $parts = $this->exceptionParser->parse($request, $response); - return isset(self::$throttlingExceptions[$parts['code']]) ? true : null; - } - } -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/UploadBodyListener.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/UploadBodyListener.php deleted file mode 100644 index a99d2fa910c..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/UploadBodyListener.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Aws\Common\Exception\InvalidArgumentException; -use Guzzle\Common\Event; -use Guzzle\Http\EntityBody; -use Guzzle\Service\Command\AbstractCommand as Command; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; - -/** - * Prepares the body parameter of a command such that the parameter is more flexible (e.g. accepts file handles) with - * the value it accepts but converts it to the correct format for the command. Also looks for a "Filename" parameter. - */ -class UploadBodyListener implements EventSubscriberInterface -{ - /** - * @var array The names of the commands of which to modify the body parameter - */ - protected $commands; - - /** - * @var string The key for the upload body parameter - */ - protected $bodyParameter; - - /** - * @var string The key for the source file parameter - */ - protected $sourceParameter; - - /** - * @param array $commands The commands to modify - * @param string $bodyParameter The key for the body parameter - * @param string $sourceParameter The key for the source file parameter - */ - public function __construct(array $commands, $bodyParameter = 'Body', $sourceParameter = 'SourceFile') - { - $this->commands = $commands; - $this->bodyParameter = (string) $bodyParameter; - $this->sourceParameter = (string) $sourceParameter; - } - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() - { - return array('command.before_prepare' => array('onCommandBeforePrepare')); - } - - /** - * Converts filenames and file handles into EntityBody objects before the command is validated - * - * @param Event $event Event emitted - * @throws InvalidArgumentException - */ - public function onCommandBeforePrepare(Event $event) - { - /** @var $command Command */ - $command = $event['command']; - if (in_array($command->getName(), $this->commands)) { - // Get the interesting parameters - $source = $command->get($this->sourceParameter); - $body = $command->get($this->bodyParameter); - - // If a file path is passed in then get the file handle - if (is_string($source) && file_exists($source)) { - $body = fopen($source, 'r'); - } - - // Prepare the body parameter and remove the source file parameter - if (null !== $body) { - $command->remove($this->sourceParameter); - $command->set($this->bodyParameter, EntityBody::factory($body)); - } else { - throw new InvalidArgumentException("You must specify a non-null value for the {$this->bodyParameter} or {$this->sourceParameter} parameters."); - } - } - } -} diff --git a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/UserAgentListener.php b/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/UserAgentListener.php deleted file mode 100644 index cc7e312c064..00000000000 --- a/apps/files_external/3rdparty/aws-sdk-php/Aws/Common/Client/UserAgentListener.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). - * You may not use this file except in compliance with the License. - * A copy of the License is located at - * - * http://aws.amazon.com/apache2.0 - * - * or in the "license" file accompanying this file. This file is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either - * express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -namespace Aws\Common\Client; - -use Guzzle\Common\Event; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; - -/** - * Listener used to append strings to the User-Agent header of a request based - * on the `ua.append` option. `ua.append` can contain a string or array of values. - */ -class UserAgentListener implements EventSubscriberInterface -{ - /** - * @var string Option used to store User-Agent modifiers - */ - const OPTION = 'ua.append'; - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() - { - return array('command.before_send' => 'onBeforeSend'); - } - - /** - * Adds strings to the User-Agent header using the `ua.append` parameter of a command - * - * @param Event $event Event emitted - */ - public function onBeforeSend(Event $event) - { - $command = $event['command']; - if ($userAgentAppends = $command->get(self::OPTION)) { - $request = $command->getRequest(); - $userAgent = (string) $request->getHeader('User-Agent'); - foreach ((array) $userAgentAppends as $append) { - $append = ' ' . $append; - if (strpos($userAgent, $append) === false) { - $userAgent .= $append; - } - } - $request->setHeader('User-Agent', $userAgent); - } - } -} |