/** * Creates a new Zend_Service_WindowsAzure_Storage_Queue instance * * @param string $host Storage host name * @param string $accountName Account name for Windows Azure * @param string $accountKey Account key for Windows Azure * @param boolean $usePathStyleUri Use path-style URI's * @param Zend_Service_WindowsAzure_RetryPolicy_AbstractRetryPolicy $retryPolicy Retry policy to use when making requests */ public function __construct($host = Zend_Service_WindowsAzure_Storage::URL_DEV_QUEUE, $accountName = Zend_Service_WindowsAzure_Credentials_AbstractCredentials::DEVSTORE_ACCOUNT, $accountKey = Zend_Service_WindowsAzure_Credentials_AbstractCredentials::DEVSTORE_KEY, $usePathStyleUri = false, Zend_Service_WindowsAzure_RetryPolicy_AbstractRetryPolicy $retryPolicy = null) { parent::__construct($host, $accountName, $accountKey, $usePathStyleUri, $retryPolicy); // API version $this->_apiVersion = '2009-04-14'; }
/** * Creates a new Zend_Service_WindowsAzure_Storage_Blob instance * * @param string $host Storage host name * @param string $accountName Account name for Windows Azure * @param string $accountKey Account key for Windows Azure * @param boolean $usePathStyleUri Use path-style URI's * @param Zend_Service_WindowsAzure_RetryPolicy_AbstractRetryPolicy $retryPolicy Retry policy to use when making requests */ public function __construct($host = Zend_Service_WindowsAzure_Storage::URL_DEV_BLOB, $accountName = Zend_Service_WindowsAzure_Credentials_AbstractCredentials::DEVSTORE_ACCOUNT, $accountKey = Zend_Service_WindowsAzure_Credentials_AbstractCredentials::DEVSTORE_KEY, $usePathStyleUri = false, Zend_Service_WindowsAzure_RetryPolicy_AbstractRetryPolicy $retryPolicy = null) { parent::__construct($host, $accountName, $accountKey, $usePathStyleUri, $retryPolicy); // API version $this->_apiVersion = '2009-07-17'; // SharedAccessSignature credentials $this->_sharedAccessSignatureCredentials = new Zend_Service_WindowsAzure_Credentials_SharedAccessSignature($accountName, $accountKey, $usePathStyleUri); }
/** * Test constructor for production */ public function testConstructorForProduction() { $storage = new Zend_Service_WindowsAzure_Storage(Zend_Service_WindowsAzure_Storage::URL_CLOUD_BLOB, 'testing', ''); $this->assertEquals('http://testing.blob.core.windows.net', $storage->getBaseUrl()); }
/** * Enlist operation in current batch * * @param string $path Path * @param string $queryString Query string * @param string $httpVerb HTTP verb the request will use * @param array $headers x-ms headers to add * @param boolean $forTableStorage Is the request for table storage? * @param mixed $rawData Optional RAW HTTP data to be sent over the wire * @throws Zend_Service_WindowsAzure_Exception */ public function enlistOperation($path = '/', $queryString = '', $httpVerb = Zend_Http_Client::GET, $headers = array(), $forTableStorage = false, $rawData = null) { // Set _forTableStorage if ($forTableStorage) { $this->_forTableStorage = true; } // Set _isSingleSelect if ($httpVerb == Zend_Http_Client::GET) { if (count($this->_operations) > 0) { throw new Zend_Service_WindowsAzure_Exception("Select operations can only be performed in an empty batch transaction."); } $this->_isSingleSelect = true; } // Clean path if (strpos($path, '/') !== 0) { $path = '/' . $path; } // Clean headers if (is_null($headers)) { $headers = array(); } // URL encoding $path = Zend_Service_WindowsAzure_Storage::urlencode($path); $queryString = Zend_Service_WindowsAzure_Storage::urlencode($queryString); // Generate URL $requestUrl = $this->getBaseUrl() . $path . $queryString; // Generate $rawData if (is_null($rawData)) { $rawData = ''; } // Add headers if ($httpVerb != Zend_Http_Client::GET) { $headers['Content-ID'] = count($this->_operations) + 1; if ($httpVerb != Zend_Http_Client::DELETE) { $headers['Content-Type'] = 'application/atom+xml;type=entry'; } $headers['Content-Length'] = strlen($rawData); } // Generate $operation $operation = ''; $operation .= $httpVerb . ' ' . $requestUrl . ' HTTP/1.1' . "\n"; foreach ($headers as $key => $value) { $operation .= $key . ': ' . $value . "\n"; } $operation .= "\n"; // Add data $operation .= $rawData; // Store operation $this->_operations[] = $operation; }