示例#1
0
 /**
  * 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);
     }
 }
示例#2
0
 /**
  * Ensure storage has been initialized
  */
 protected function _ensureStorageInitialized()
 {
     if (!$this->_blobStorageClient->containerExists($this->_controlContainer)) {
         $this->_blobStorageClient->createContainer($this->_controlContainer);
     }
 }