summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/S3/Exception/S3MultipartUploadException.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/S3/Exception/S3MultipartUploadException.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/S3/Exception/S3MultipartUploadException.php84
1 files changed, 84 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/S3/Exception/S3MultipartUploadException.php b/vendor/aws/aws-sdk-php/src/S3/Exception/S3MultipartUploadException.php
new file mode 100644
index 0000000..957e472
--- /dev/null
+++ b/vendor/aws/aws-sdk-php/src/S3/Exception/S3MultipartUploadException.php
@@ -0,0 +1,84 @@
+<?php
+namespace Aws\S3\Exception;
+
+use Aws\CommandInterface;
+use Aws\Exception\AwsException;
+use Aws\Multipart\UploadState;
+
+class S3MultipartUploadException extends \Aws\Exception\MultipartUploadException
+{
+ /** @var string Bucket of the transfer object */
+ private $bucket;
+ /** @var string Key of the transfer object */
+ private $key;
+ /** @var string Source file name of the transfer object */
+ private $filename;
+
+ /**
+ * @param UploadState $state Upload state at time of the exception.
+ * @param \Exception|array $prev Exception being thrown. Could be an array of
+ * AwsExceptions being thrown when uploading parts
+ * for one object, or an instance of AwsException
+ * for a specific Multipart error being thrown in
+ * the MultipartUpload process.
+ */
+ public function __construct(UploadState $state, $prev = null) {
+ if (is_array($prev) && $error = $prev[key($prev)]) {
+ $this->collectPathInfo($error->getCommand());
+ } elseif ($prev instanceof AwsException) {
+ $this->collectPathInfo($prev->getCommand());
+ }
+ parent::__construct($state, $prev);
+ }
+
+ /**
+ * Get the Bucket information of the transfer object
+ *
+ * @return string|null Returns null when 'Bucket' information
+ * is unavailable.
+ */
+ public function getBucket()
+ {
+ return $this->bucket;
+ }
+
+ /**
+ * Get the Key information of the transfer object
+ *
+ * @return string|null Returns null when 'Key' information
+ * is unavailable.
+ */
+ public function getKey()
+ {
+ return $this->key;
+ }
+
+ /**
+ * Get the source file name of the transfer object
+ *
+ * @return string|null Returns null when metadata of the stream
+ * wrapped in 'Body' parameter is unavailable.
+ */
+ public function getSourceFileName()
+ {
+ return $this->filename;
+ }
+
+ /**
+ * Collect file path information when accessible. (Bucket, Key)
+ *
+ * @param CommandInterface $cmd
+ */
+ private function collectPathInfo(CommandInterface $cmd)
+ {
+ if (empty($this->bucket) && isset($cmd['Bucket'])) {
+ $this->bucket = $cmd['Bucket'];
+ }
+ if (empty($this->key) && isset($cmd['Key'])) {
+ $this->key = $cmd['Key'];
+ }
+ if (empty($this->filename) && isset($cmd['Body'])) {
+ $this->filename = $cmd['Body']->getMetadata('uri');
+ }
+ }
+}