Overview

Namespaces

  • OpenCloud
    • Autoscale
      • Resource
    • CloudMonitoring
      • Exception
      • Resource
    • Common
      • Collection
      • Constants
      • Exceptions
      • Http
        • Message
      • Log
      • Resource
      • Service
    • Compute
      • Constants
      • Exception
      • Resource
    • Database
      • Resource
    • DNS
      • Collection
      • Resource
    • Identity
      • Constants
      • Resource
    • Image
      • Enum
      • Resource
        • JsonPatch
        • Schema
    • LoadBalancer
      • Enum
      • Resource
    • ObjectStore
      • Constants
      • Exception
      • Resource
      • Upload
    • Orchestration
    • Queues
      • Exception
      • Resource
    • Volume
      • Resource
  • PHP

Classes

  • AbstractContainer
  • AbstractResource
  • Account
  • CDNContainer
  • Container
  • ContainerMetadata
  • DataObject
  • Overview
  • Namespace
  • Class
  • Tree
  • Download
  1: <?php
  2: /**
  3:  * Copyright 2012-2014 Rackspace US, Inc.
  4:  *
  5:  * Licensed under the Apache License, Version 2.0 (the "License");
  6:  * you may not use this file except in compliance with the License.
  7:  * You may obtain a copy of the License at
  8:  *
  9:  * http://www.apache.org/licenses/LICENSE-2.0
 10:  *
 11:  * Unless required by applicable law or agreed to in writing, software
 12:  * distributed under the License is distributed on an "AS IS" BASIS,
 13:  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14:  * See the License for the specific language governing permissions and
 15:  * limitations under the License.
 16:  */
 17: 
 18: namespace OpenCloud\ObjectStore\Resource;
 19: 
 20: /**
 21:  * Represents an account that interacts with the CloudFiles API.
 22:  *
 23:  * @link http://docs.rackspace.com/files/api/v1/cf-devguide/content/Accounts-d1e421.html
 24:  */
 25: class Account extends AbstractResource
 26: {
 27:     const METADATA_LABEL = 'Account';
 28: 
 29:     /**
 30:      * @var string The temporary URL secret for this account
 31:      */
 32:     private $tempUrlSecret;
 33: 
 34:     public function getUrl($path = null, array $query = array())
 35:     {
 36:         return $this->getService()->getUrl();
 37:     }
 38: 
 39:     /**
 40:      * Convenience method.
 41:      *
 42:      * @return \OpenCloud\Common\Metadata
 43:      */
 44:     public function getDetails()
 45:     {
 46:         return $this->retrieveMetadata();
 47:     }
 48: 
 49:     /**
 50:      * @return null|string|int
 51:      */
 52:     public function getObjectCount()
 53:     {
 54:         return $this->metadata->getProperty('Object-Count');
 55:     }
 56: 
 57:     /**
 58:      * @return null|string|int
 59:      */
 60:     public function getContainerCount()
 61:     {
 62:         return $this->metadata->getProperty('Container-Count');
 63:     }
 64: 
 65:     /**
 66:      * @return null|string|int
 67:      */
 68:     public function getBytesUsed()
 69:     {
 70:         return $this->metadata->getProperty('Bytes-Used');
 71:     }
 72: 
 73:     /**
 74:      * Sets the secret value for the temporary URL.
 75:      *
 76:      * @link http://docs.rackspace.com/files/api/v1/cf-devguide/content/Set_Account_Metadata-d1a4460.html
 77:      *
 78:      * @param null $secret The value to set the secret to. If left blank, a random hash is generated.
 79:      * @return $this
 80:      */
 81:     public function setTempUrlSecret($secret = null)
 82:     {
 83:         if (!$secret) {
 84:             $secret = sha1(rand(1, 99999));
 85:         }
 86: 
 87:         $this->tempUrlSecret = $secret;
 88: 
 89:         $this->saveMetadata($this->appendToMetadata(array('Temp-Url-Key' => $secret)));
 90: 
 91:         return $this;
 92:     }
 93: 
 94:     /**
 95:      * @return null|string
 96:      */
 97:     public function getTempUrlSecret()
 98:     {
 99:         if (null === $this->tempUrlSecret) {
100:             $this->retrieveMetadata();
101:             $this->tempUrlSecret = $this->metadata->getProperty('Temp-Url-Key');
102:         }
103: 
104:         return $this->tempUrlSecret;
105:     }
106: }
107: 
PHP OpenCloud API API documentation generated by ApiGen 2.8.0