AwsException.php
10 months ago
CommonRuntimeException.php
10 months ago
CouldNotCreateChecksumException.php
10 months ago
CredentialsException.php
10 months ago
CryptoException.php
10 months ago
CryptoPolyfillException.php
10 months ago
EventStreamDataException.php
10 months ago
IncalculablePayloadException.php
10 months ago
InvalidJsonException.php
10 months ago
InvalidRegionException.php
10 months ago
MultipartUploadException.php
10 months ago
TokenException.php
10 months ago
UnresolvedApiException.php
10 months ago
UnresolvedEndpointException.php
10 months ago
UnresolvedSignatureException.php
10 months ago
MultipartUploadException.php
64 lines
| 1 | <?php |
| 2 | namespace Aws\Exception; |
| 3 | |
| 4 | use Aws\HasMonitoringEventsTrait; |
| 5 | use Aws\MonitoringEventsInterface; |
| 6 | use Aws\Multipart\UploadState; |
| 7 | |
| 8 | class MultipartUploadException extends \RuntimeException implements |
| 9 | MonitoringEventsInterface |
| 10 | { |
| 11 | use HasMonitoringEventsTrait; |
| 12 | |
| 13 | /** @var UploadState State of the erroneous transfer */ |
| 14 | private $state; |
| 15 | |
| 16 | /** |
| 17 | * @param UploadState $state Upload state at time of the exception. |
| 18 | * @param \Exception|array $prev Exception being thrown. |
| 19 | */ |
| 20 | public function __construct(UploadState $state, $prev = null) { |
| 21 | $msg = 'An exception occurred while performing a multipart upload'; |
| 22 | |
| 23 | if (is_array($prev)) { |
| 24 | $msg = strtr($msg, ['performing' => 'uploading parts to']); |
| 25 | $msg .= ". The following parts had errors:\n"; |
| 26 | /** @var $error AwsException */ |
| 27 | foreach ($prev as $part => $error) { |
| 28 | $msg .= "- Part {$part}: " . $error->getMessage(). "\n"; |
| 29 | } |
| 30 | } elseif ($prev instanceof AwsException) { |
| 31 | switch ($prev->getCommand()->getName()) { |
| 32 | case 'CreateMultipartUpload': |
| 33 | case 'InitiateMultipartUpload': |
| 34 | $action = 'initiating'; |
| 35 | break; |
| 36 | case 'CompleteMultipartUpload': |
| 37 | $action = 'completing'; |
| 38 | break; |
| 39 | } |
| 40 | if (isset($action)) { |
| 41 | $msg = strtr($msg, ['performing' => $action]); |
| 42 | } |
| 43 | $msg .= ": {$prev->getMessage()}"; |
| 44 | } |
| 45 | |
| 46 | if (!$prev instanceof \Exception) { |
| 47 | $prev = null; |
| 48 | } |
| 49 | |
| 50 | parent::__construct($msg, 0, $prev); |
| 51 | $this->state = $state; |
| 52 | } |
| 53 | |
| 54 | /** |
| 55 | * Get the state of the transfer |
| 56 | * |
| 57 | * @return UploadState |
| 58 | */ |
| 59 | public function getState() |
| 60 | { |
| 61 | return $this->state; |
| 62 | } |
| 63 | } |
| 64 |