Esempio n. 1
0
 /** @internal */
 public static function _applyRetryConfig($value, array &$args, HandlerList $list)
 {
     if (!$value) {
         return;
     }
     $list->appendSign(Middleware::retry(RetryMiddleware::createDefaultDecider($value), function ($retries) {
         return $retries ? RetryMiddleware::exponentialDelay($retries) / 2 : 0;
     }, isset($args['stats']['retries']) ? (bool) $args['stats']['retries'] : false), 'retry');
 }
Esempio n. 2
0
 public function __construct(array $args)
 {
     parent::__construct($args);
     // Setup middleware.
     $stack = $this->getHandlerList();
     $stack->appendBuild($this->getApiVersionMiddleware(), 'glacier.api_version');
     $stack->appendBuild($this->getChecksumsMiddleware(), 'glacier.checksum');
     $stack->appendBuild(Middleware::contentType(['UploadArchive', 'UploadPart']), 'glacier.content_type');
     $stack->appendInit(Middleware::sourceFile($this->getApi(), 'body', 'sourceFile'), 'glacier.source_file');
 }
Esempio n. 3
0
 /** @internal */
 public static function _applyRetryConfig($value, $_, HandlerList $list)
 {
     if (!$value) {
         return;
     }
     $decider = RetryMiddleware::createDefaultDecider($value);
     $decider = function ($retries, $command, $request, $result, $error) use($decider, $value) {
         $maxRetries = null !== $command['@retries'] ? $command['@retries'] : $value;
         if ($decider($retries, $command, $request, $result, $error)) {
             return true;
         } elseif ($error instanceof AwsException && $retries < $maxRetries) {
             if ($error->getResponse() && $error->getResponse()->getStatusCode() >= 400) {
                 return strpos($error->getResponse()->getBody(), 'Your socket connection to the server') !== false;
             } elseif ($error->getPrevious() instanceof RequestException) {
                 // All commands except CompleteMultipartUpload are
                 // idempotent and may be retried without worry if a
                 // networking error has occurred.
                 return $command->getName() !== 'CompleteMultipartUpload';
             }
         }
         return false;
     };
     $delay = [RetryMiddleware::class, 'exponentialDelay'];
     $list->appendSign(Middleware::retry($decider, $delay), 'retry');
 }
Esempio n. 4
0
 public static function _apply_validate($value, array &$args, HandlerList $list)
 {
     if ($value === false) {
         return;
     }
     $validator = $value === true ? new Validator() : new Validator($value);
     $list->appendValidate(Middleware::validation($args['api'], $validator), 'validation');
 }
Esempio n. 5
0
 private function addInvocationId()
 {
     // Add invocation id to each request
     $this->handlerList->prependSign(Middleware::invocationId(), 'invocation-id');
 }