/** * Creates a new Zend_Cloud_Storage_WindowsAzure instance * * @param array|Zend_Config $options Options for the Zend_Cloud_Storage_WindowsAzure instance */ public function __construct($options = array()) { if ($options instanceof Zend_Config) { $options = $options->toArray(); } if (!is_array($options)) { throw new Zend_Cloud_StorageService_Exception('Invalid options provided'); } // Build Zend_Service_WindowsAzure_Storage_Blob instance if (!isset($options[self::HOST])) { $host = self::DEFAULT_HOST; } else { $host = $options[self::HOST]; } if (!isset($options[self::ACCOUNT_NAME])) { throw new Zend_Cloud_StorageService_Exception('No Windows Azure account name provided.'); } if (!isset($options[self::ACCOUNT_KEY])) { throw new Zend_Cloud_StorageService_Exception('No Windows Azure account key provided.'); } $this->_storageClient = new Zend_Service_WindowsAzure_Storage_Blob($host, $options[self::ACCOUNT_NAME], $options[self::ACCOUNT_KEY]); // Parse other options if (!empty($options[self::PROXY_HOST])) { $proxyHost = $options[self::PROXY_HOST]; $proxyPort = isset($options[self::PROXY_PORT]) ? $options[self::PROXY_PORT] : 8080; $proxyCredentials = isset($options[self::PROXY_CREDENTIALS]) ? $options[self::PROXY_CREDENTIALS] : ''; $this->_storageClient->setProxy(true, $proxyHost, $proxyPort, $proxyCredentials); } if (isset($options[self::HTTP_ADAPTER])) { $this->_storageClient->setHttpClientChannel($options[self::HTTP_ADAPTER]); } // Set container $this->_container = $options[self::CONTAINER]; // Make sure the container exists if (!$this->_storageClient->containerExists($this->_container)) { $this->_storageClient->createContainer($this->_container); } }
/** * Ensure storage has been initialized */ protected function _ensureStorageInitialized() { if (!$this->_blobStorageClient->containerExists($this->_controlContainer)) { $this->_blobStorageClient->createContainer($this->_controlContainer); } }