PluginProbe
Media Cloud Sync / 1.2.0
Media Cloud Sync v1.2.0
1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 All 35 releases
media-cloud-sync / includes / sdk / s3 / Aws / Retry / RetryHelperTrait.php

RetryHelperTrait.php in Media Cloud Sync 1.2.0, at includes/sdk/s3/Aws/Retry/RetryHelperTrait.php

47 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\Aws\Retry;
4
5 use Dudlewebs\WPMCS\s3\Aws\Exception\AwsException;
6 use Dudlewebs\WPMCS\s3\Aws\ResultInterface;
7 trait RetryHelperTrait
8 {
9 private function addRetryHeader($request, $retries, $delayBy)
10 {
11 return $request->withHeader('aws-sdk-retry', "{$retries}/{$delayBy}");
12 }
13 private function updateStats($retries, $delay, array &$stats)
14 {
15 if (!isset($stats['total_retry_delay'])) {
16 $stats['total_retry_delay'] = 0;
17 }
18 $stats['total_retry_delay'] += $delay;
19 $stats['retries_attempted'] = $retries;
20 }
21 private function updateHttpStats($value, array &$stats)
22 {
23 if (empty($stats['http'])) {
24 $stats['http'] = [];
25 }
26 if ($value instanceof AwsException) {
27 $resultStats = $value->getTransferInfo();
28 $stats['http'][] = $resultStats;
29 } elseif ($value instanceof ResultInterface) {
30 $resultStats = isset($value['@metadata']['transferStats']['http'][0]) ? $value['@metadata']['transferStats']['http'][0] : [];
31 $stats['http'][] = $resultStats;
32 }
33 }
34 private function bindStatsToReturn($return, array $stats)
35 {
36 if ($return instanceof ResultInterface) {
37 if (!isset($return['@metadata'])) {
38 $return['@metadata'] = [];
39 }
40 $return['@metadata']['transferStats'] = $stats;
41 } elseif ($return instanceof AwsException) {
42 $return->setTransferInfo($stats);
43 }
44 return $return;
45 }
46 }
47