PHP Classes

File: application/modules/extensions/aws/Aws/Multipart/UploadState.php

Recommend this page to a friend!
  Classes of Tran Tuan   Pretty PHP S3 Files Manager   application/modules/extensions/aws/Aws/Multipart/UploadState.php   Download  
File: application/modules/extensions/aws/Aws/Multipart/UploadState.php
Role: Application script
Content type: text/plain
Description: Application script
Class: Pretty PHP S3 Files Manager
Web based interface to manage files in Amazon S3
Author: By
Last change:
Date: 8 years ago
Size: 3,335 bytes
 

Contents

Class file image Download
<?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;
    }
}