diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php b/vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php new file mode 100644 index 0000000..74e4ea2 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Exception/MultipartUploadException.php @@ -0,0 +1,63 @@ +<?php +namespace Aws\Exception; + +use Aws\HasMonitoringEventsTrait; +use Aws\MonitoringEventsInterface; +use Aws\Multipart\UploadState; + +class MultipartUploadException extends \RuntimeException implements + MonitoringEventsInterface +{ + use HasMonitoringEventsTrait; + + /** @var UploadState State of the erroneous transfer */ + private $state; + + /** + * @param UploadState $state Upload state at time of the exception. + * @param \Exception|array $prev Exception being thrown. + */ + public function __construct(UploadState $state, $prev = null) { + $msg = 'An exception occurred while performing a multipart upload'; + + if (is_array($prev)) { + $msg = strtr($msg, ['performing' => 'uploading parts to']); + $msg .= ". The following parts had errors:\n"; + /** @var $error AwsException */ + foreach ($prev as $part => $error) { + $msg .= "- Part {$part}: " . $error->getMessage(). "\n"; + } + } elseif ($prev instanceof AwsException) { + switch ($prev->getCommand()->getName()) { + case 'CreateMultipartUpload': + case 'InitiateMultipartUpload': + $action = 'initiating'; + break; + case 'CompleteMultipartUpload': + $action = 'completing'; + break; + } + if (isset($action)) { + $msg = strtr($msg, ['performing' => $action]); + } + $msg .= ": {$prev->getMessage()}"; + } + + if (!$prev instanceof \Exception) { + $prev = null; + } + + parent::__construct($msg, 0, $prev); + $this->state = $state; + } + + /** + * Get the state of the transfer + * + * @return UploadState + */ + public function getState() + { + return $this->state; + } +} |