123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- namespace Aws\Multipart;
- /**
- * Representation of the multipart upload.
- *
- * This object keeps track of the state of the upload, including the status and
- * which parts have been uploaded.
- */
- class UploadState
- {
- const CREATED = 0;
- const INITIATED = 1;
- const COMPLETED = 2;
- /** @var array Params used to identity the upload. */
- private $id;
- /** @var int Part size being used by the upload. */
- private $partSize;
- /** @var array Parts that have been uploaded. */
- private $uploadedParts = [];
- /** @var int Identifies the status the upload. */
- private $status = self::CREATED;
- /**
- * @param array $id Params used to identity the upload.
- */
- public function __construct(array $id)
- {
- $this->id = $id;
- }
- /**
- * Get the upload's ID, which is a tuple of parameters that can uniquely
- * identify the upload.
- *
- * @return array
- */
- public function getId()
- {
- return $this->id;
- }
- /**
- * Set's the "upload_id", or 3rd part of the upload's ID. This typically
- * only needs to be done after initiating an upload.
- *
- * @param string $key The param key of the upload_id.
- * @param string $value The param value of the upload_id.
- */
- public function setUploadId($key, $value)
- {
- $this->id[$key] = $value;
- }
- /**
- * Get the part size.
- *
- * @return int
- */
- public function getPartSize()
- {
- return $this->partSize;
- }
- /**
- * Set the part size.
- *
- * @param $partSize int Size of upload parts.
- */
- public function setPartSize($partSize)
- {
- $this->partSize = $partSize;
- }
- /**
- * Marks a part as being uploaded.
- *
- * @param int $partNumber The part number.
- * @param array $partData Data from the upload operation that needs to be
- * recalled during the complete operation.
- */
- public function markPartAsUploaded($partNumber, array $partData = [])
- {
- $this->uploadedParts[$partNumber] = $partData;
- }
- /**
- * Returns whether a part has been uploaded.
- *
- * @param int $partNumber The part number.
- *
- * @return bool
- */
- public function hasPartBeenUploaded($partNumber)
- {
- return isset($this->uploadedParts[$partNumber]);
- }
- /**
- * Returns a sorted list of all the uploaded parts.
- *
- * @return array
- */
- public function getUploadedParts()
- {
- ksort($this->uploadedParts);
- return $this->uploadedParts;
- }
- /**
- * Set the status of the upload.
- *
- * @param int $status Status is an integer code defined by the constants
- * CREATED, INITIATED, and COMPLETED on this class.
- */
- public function setStatus($status)
- {
- $this->status = $status;
- }
- /**
- * Determines whether the upload state is in the INITIATED status.
- *
- * @return bool
- */
- public function isInitiated()
- {
- return $this->status === self::INITIATED;
- }
- /**
- * Determines whether the upload state is in the COMPLETED status.
- *
- * @return bool
- */
- public function isCompleted()
- {
- return $this->status === self::COMPLETED;
- }
- }
|