Exemplo n.º 1
0
 /**
  * Adds new entry to the block list entries.
  * 
  * @param string $blockId The block id.
  * @param string $type    The entry type, you can use BlobBlockType.
  * 
  * @return none
  */
 public function addEntry($blockId, $type)
 {
     Validate::isString($blockId, 'blockId');
     Validate::isTrue(BlobBlockType::isValid($type), sprintf(Resources::INVALID_BTE_MSG, get_class(new BlobBlockType())));
     $block = new Block();
     $block->setBlockId($blockId);
     $block->setType($type);
     $this->_entries[] = $block;
 }
Exemplo n.º 2
0
 /**
  * Creates BatchError object.
  * 
  * @param MicrosoftAzure\Storage\Common\ServiceException $error   The error object.
  * @param array                                $headers The response headers.
  * 
  * @return \MicrosoftAzure\Storage\Table\Models\BatchError 
  */
 public static function create($error, $headers)
 {
     Validate::isTrue($error instanceof ServiceException, Resources::INVALID_EXC_OBJ_MSG);
     Validate::isArray($headers, 'headers');
     $result = new BatchError();
     $clean = array_change_key_case($headers);
     $result->setError($error);
     $contentId = Utilities::tryGetValue($clean, Resources::CONTENT_ID);
     $result->setContentId(is_null($contentId) ? null : intval($contentId));
     return $result;
 }
Exemplo n.º 3
0
 /**
  * @covers MicrosoftAzure\Storage\Common\Internal\Validate::isTrue
  */
 public function testIsTrueWithFalse()
 {
     $this->setExpectedException('\\InvalidArgumentException');
     Validate::isTrue(false, Resources::EMPTY_STRING);
 }
Exemplo n.º 4
0
 /**
  * Adds deleteEntity operation.
  * 
  * @param string $table        The table name.
  * @param string $partitionKey The entity partition key.
  * @param string $rowKey       The entity row key.
  * @param string $etag         The entity etag.
  * 
  * @return none
  */
 public function addDeleteEntity($table, $partitionKey, $rowKey, $etag = null)
 {
     Validate::isString($table, 'table');
     Validate::isTrue(!is_null($partitionKey), Resources::NULL_TABLE_KEY_MSG);
     Validate::isTrue(!is_null($rowKey), Resources::NULL_TABLE_KEY_MSG);
     $operation = new BatchOperation();
     $type = BatchOperationType::DELETE_ENTITY_OPERATION;
     $operation->setType($type);
     $operation->addParameter(BatchOperationParameterName::BP_TABLE, $table);
     $operation->addParameter(BatchOperationParameterName::BP_ROW_KEY, $rowKey);
     $operation->addParameter(BatchOperationParameterName::BP_ETAG, $etag);
     $operation->addParameter(BatchOperationParameterName::BP_PARTITION_KEY, $partitionKey);
     $this->addOperation($operation);
 }
Exemplo n.º 5
0
 /**
  * Sets entity property.
  * 
  * @param string   $name     The property name.
  * @param Property $property The property object.
  * 
  * @return none
  */
 public function setProperty($name, $property)
 {
     Validate::isTrue($property instanceof Property, Resources::INVALID_PROP_MSG);
     $this->_properties[$name] = $property;
 }
Exemplo n.º 6
0
 /**
  * Sets header type
  * 
  * @param string $headerType can be one of Resources
  * 
  * @return none.
  */
 public function setHeader($headerType)
 {
     $valid = AccessCondition::isValid($headerType);
     Validate::isTrue($valid, Resources::INVALID_HT_MSG);
     $this->_header = $headerType;
 }
Exemplo n.º 7
0
 /**
  * Converts the type to string if it's empty and validates the type.
  * 
  * @param string $type The Edm type
  * 
  * @return string
  */
 public static function processType($type)
 {
     $type = empty($type) ? self::STRING : $type;
     Validate::isTrue(self::isValid($type), Resources::INVALID_EDM_MSG);
     return $type;
 }
Exemplo n.º 8
0
 /**
  * Adds or sets parameter for the operation.
  * 
  * @param string $name  The param name. Must be valid name.
  * @param mix    $value The param value.
  * 
  * @return none
  */
 public function addParameter($name, $value)
 {
     Validate::isTrue(BatchOperationParameterName::isValid($name), Resources::INVALID_BO_PN_MSG);
     $this->_params[$name] = $value;
 }
Exemplo n.º 9
0
 /**
  * Gets table entity.
  *
  * @param string                     $table        The name of the table.
  * @param string                     $partitionKey The entity partition key.
  * @param string                     $rowKey       The entity row key.
  * @param Models\TableServiceOptions $options      The optional parameters.
  *
  * @return Models\GetEntityResult
  *
  * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179421.aspx
  */
 public function getEntity($table, $partitionKey, $rowKey, $options = null)
 {
     Validate::isString($table, 'table');
     Validate::notNullOrEmpty($table, 'table');
     Validate::isTrue(!is_null($partitionKey), Resources::NULL_TABLE_KEY_MSG);
     Validate::isTrue(!is_null($rowKey), Resources::NULL_TABLE_KEY_MSG);
     $method = Resources::HTTP_GET;
     $headers = array();
     $queryParams = array();
     $statusCode = Resources::STATUS_OK;
     $path = $this->_getEntityPath($table, $partitionKey, $rowKey);
     if (is_null($options)) {
         $options = new TableServiceOptions();
     }
     $this->addOptionalHeader($headers, Resources::CONTENT_TYPE, Resources::XML_ATOM_CONTENT_TYPE);
     $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout());
     $context = new HttpCallContext();
     $context->setHeaders($headers);
     $context->setMethod($method);
     $context->setPath($path);
     $context->setQueryParameters($queryParams);
     $context->addStatusCode($statusCode);
     $response = $this->sendContext($context);
     $entity = $this->_atomSerializer->parseEntity($response->getBody());
     $result = new GetEntityResult();
     $result->setEntity($entity);
     return $result;
 }
Exemplo n.º 10
0
 /**
  * Sets the properties of the Queue service.
  * 
  * It's recommended to use getServiceProperties, alter the returned object and
  * then use setServiceProperties with this altered object.
  * 
  * @param array               $serviceProperties The new service properties.
  * @param QueueServiceOptions $options           The optional parameters.  
  * 
  * @return none
  */
 public function setServiceProperties($serviceProperties, $options = null)
 {
     Validate::isTrue($serviceProperties instanceof ServiceProperties, Resources::INVALID_SVC_PROP_MSG);
     $method = Resources::HTTP_PUT;
     $headers = array();
     $postParams = array();
     $queryParams = array();
     $statusCode = Resources::STATUS_ACCEPTED;
     $path = Resources::EMPTY_STRING;
     $body = $serviceProperties->toXml($this->dataSerializer);
     if (is_null($options)) {
         $options = new QueueServiceOptions();
     }
     $this->addOptionalQueryParam($queryParams, Resources::QP_REST_TYPE, 'service');
     $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'properties');
     $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout());
     $this->addOptionalHeader($headers, Resources::CONTENT_TYPE, Resources::URL_ENCODED_CONTENT_TYPE);
     $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode, $body);
 }
Exemplo n.º 11
0
 /**
  * Sets container publicAccess.
  *
  * @param string $publicAccess value.
  *
  * @return none.
  */
 public function setPublicAccess($publicAccess)
 {
     Validate::isTrue(PublicAccessType::isValid($publicAccess), Resources::INVALID_BLOB_PAT_MSG);
     $this->_publicAccess = $publicAccess;
 }
Exemplo n.º 12
0
 /**
  * This method writes a blob by specifying the list of block IDs that make up the
  * blob. In order to be written as part of a blob, a block must have been 
  * successfully written to the server in a prior createBlobBlock method.
  * 
  * You can call Put Block List to update a blob by uploading only those blocks 
  * that have changed, then committing the new and existing blocks together. 
  * You can do this by specifying whether to commit a block from the committed 
  * block list or from the uncommitted block list, or to commit the most recently
  * uploaded version of the block, whichever list it may belong to.
  * 
  * @param string                         $container The container name.
  * @param string                         $blob      The blob name.
  * @param Models\BlockList|array         $blockList The block entries.
  * @param Models\CommitBlobBlocksOptions $options   The optional parameters.
  * 
  * @return CopyBlobResult
  * 
  * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179467.aspx 
  */
 public function commitBlobBlocks($container, $blob, $blockList, $options = null)
 {
     Validate::isString($container, 'container');
     Validate::isString($blob, 'blob');
     Validate::notNullOrEmpty($blob, 'blob');
     Validate::isTrue($blockList instanceof BlockList || is_array($blockList), sprintf(Resources::INVALID_PARAM_MSG, 'blockList', get_class(new BlockList())));
     $method = Resources::HTTP_PUT;
     $headers = array();
     $postParams = array();
     $queryParams = array();
     $path = $this->_createPath($container, $blob);
     $statusCode = Resources::STATUS_CREATED;
     $isArray = is_array($blockList);
     $blockList = $isArray ? BlockList::create($blockList) : $blockList;
     $body = $blockList->toXml($this->dataSerializer);
     if (is_null($options)) {
         $options = new CommitBlobBlocksOptions();
     }
     $blobContentType = $options->getBlobContentType();
     $blobContentEncoding = $options->getBlobContentEncoding();
     $blobContentLanguage = $options->getBlobContentLanguage();
     $blobContentMD5 = $options->getBlobContentMD5();
     $blobCacheControl = $options->getBlobCacheControl();
     $leaseId = $options->getLeaseId();
     $contentType = Resources::URL_ENCODED_CONTENT_TYPE;
     $metadata = $options->getMetadata();
     $headers = $this->generateMetadataHeaders($metadata);
     $headers = $this->addOptionalAccessConditionHeader($headers, $options->getAccessCondition());
     $this->addOptionalHeader($headers, Resources::X_MS_LEASE_ID, $leaseId);
     $this->addOptionalHeader($headers, Resources::X_MS_BLOB_CACHE_CONTROL, $blobCacheControl);
     $this->addOptionalHeader($headers, Resources::X_MS_BLOB_CONTENT_TYPE, $blobContentType);
     $this->addOptionalHeader($headers, Resources::X_MS_BLOB_CONTENT_ENCODING, $blobContentEncoding);
     $this->addOptionalHeader($headers, Resources::X_MS_BLOB_CONTENT_LANGUAGE, $blobContentLanguage);
     $this->addOptionalHeader($headers, Resources::X_MS_BLOB_CONTENT_MD5, $blobContentMD5);
     $this->addOptionalHeader($headers, Resources::CONTENT_TYPE, $contentType);
     $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout());
     $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'blocklist');
     return $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode, $body);
 }