diff -r 5e7a0fedabdf -r 877f952ae2bd web/lib/Zend/Service/WindowsAzure/Storage/Blob.php
--- a/web/lib/Zend/Service/WindowsAzure/Storage/Blob.php Thu Mar 21 17:31:31 2013 +0100
+++ b/web/lib/Zend/Service/WindowsAzure/Storage/Blob.php Thu Mar 21 19:50:53 2013 +0100
@@ -15,35 +15,10 @@
* @category Zend
* @package Zend_Service_WindowsAzure
* @subpackage Storage
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://todo name_todo
- * @version $Id: Blob.php 23167 2010-10-19 17:53:31Z mabe $
- */
-
-/**
- * @see Zend_Service_WindowsAzure_Credentials_CredentialsAbstract_SharedKey
- */
-require_once 'Zend/Service/WindowsAzure/Credentials/SharedKey.php';
-
-/**
- * @see Zend_Service_WindowsAzure_Credentials_SharedAccessSignature
+ * @version $Id: Blob.php 24697 2012-03-23 13:11:04Z ezimuel $
*/
-require_once 'Zend/Service/WindowsAzure/Credentials/SharedAccessSignature.php';
-
-/**
- * @see Zend_Service_WindowsAzure_RetryPolicy_RetryPolicyAbstract
- */
-require_once 'Zend/Service/WindowsAzure/RetryPolicy/RetryPolicyAbstract.php';
-
-/**
- * @see Zend_Http_Client
- */
-require_once 'Zend/Http/Client.php';
-
-/**
- * @see Zend_Http_Response
- */
-require_once 'Zend/Http/Response.php';
/**
* @see Zend_Service_WindowsAzure_Storage
@@ -51,16 +26,16 @@
require_once 'Zend/Service/WindowsAzure/Storage.php';
/**
+ * @see Zend_Service_WindowsAzure_Storage_BlobInstance
+ */
+require_once 'Zend/Service/WindowsAzure/Storage/BlobInstance.php';
+
+/**
* @see Zend_Service_WindowsAzure_Storage_BlobContainer
*/
require_once 'Zend/Service/WindowsAzure/Storage/BlobContainer.php';
/**
- * @see Zend_Service_WindowsAzure_Storage_BlobInstance
- */
-require_once 'Zend/Service/WindowsAzure/Storage/BlobInstance.php';
-
-/**
* @see Zend_Service_WindowsAzure_Storage_PageRegionInstance
*/
require_once 'Zend/Service/WindowsAzure/Storage/PageRegionInstance.php';
@@ -71,21 +46,19 @@
require_once 'Zend/Service/WindowsAzure/Storage/LeaseInstance.php';
/**
- * @see Zend_Service_WindowsAzure_Storage_SignedIdentifier
+ * @see Zend_Service_WindowsAzure_Storage_Blob_Stream
*/
-require_once 'Zend/Service/WindowsAzure/Storage/SignedIdentifier.php';
+require_once 'Zend/Service/WindowsAzure/Storage/Blob/Stream.php';
/**
- * @see Zend_Service_WindowsAzure_Exception
+ * @see Zend_Service_WindowsAzure_Credentials_SharedAccessSignature
*/
-require_once 'Zend/Service/WindowsAzure/Exception.php';
-
-
+require_once 'Zend/Service/WindowsAzure/Credentials/SharedAccessSignature.php';
/**
* @category Zend
* @package Zend_Service_WindowsAzure
* @subpackage Storage
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Service_WindowsAzure_Storage_Blob extends Zend_Service_WindowsAzure_Storage
@@ -154,7 +127,7 @@
*
* @var Zend_Service_WindowsAzure_Credentials_SharedAccessSignature
*/
- private $_sharedAccessSignatureCredentials = null;
+ protected $_sharedAccessSignatureCredentials = null;
/**
* Creates a new Zend_Service_WindowsAzure_Storage_Blob instance
@@ -187,12 +160,15 @@
public function blobExists($containerName = '', $blobName = '', $snapshotId = null)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
@@ -215,9 +191,11 @@
public function containerExists($containerName = '')
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -243,12 +221,15 @@
public function createContainer($containerName = '', $metadata = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if (!is_array($metadata)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Meta data should be an array of key and value pairs.');
}
@@ -259,6 +240,7 @@
// Perform request
$response = $this->_performRequest($containerName, '?restype=container', Zend_Http_Client::PUT, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_CONTAINER, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if ($response->isSuccessful()) {
+
return new Zend_Service_WindowsAzure_Storage_BlobContainer(
$containerName,
$response->getHeader('Etag'),
@@ -266,9 +248,24 @@
$metadata
);
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
+
+ /**
+ * Create container if it does not exist
+ *
+ * @param string $containerName Container name
+ * @param array $metadata Key/value pairs of meta data
+ * @throws Zend_Service_WindowsAzure_Exception
+ */
+ public function createContainerIfNotExists($containerName = '', $metadata = array())
+ {
+ if (!$this->containerExists($containerName)) {
+ $this->createContainer($containerName, $metadata);
+ }
+ }
/**
* Get container ACL
@@ -281,9 +278,11 @@
public function getContainerAcl($containerName = '', $signedIdentifiers = false)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -313,6 +312,7 @@
}
}
+ require_once 'Zend/Service/WindowsAzure/Storage/SignedIdentifier.php';
// Return value
$returnValue = array();
foreach ($entries as $entry) {
@@ -328,6 +328,7 @@
return $returnValue;
}
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -343,9 +344,11 @@
public function setContainerAcl($containerName = '', $acl = self::ACL_PRIVATE, $signedIdentifiers = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -353,7 +356,7 @@
$headers = array();
// Acl specified?
- if ($acl != self::ACL_PRIVATE && $acl !== null && $acl != '') {
+ if ($acl != self::ACL_PRIVATE && !is_null($acl) && $acl != '') {
$headers[Zend_Service_WindowsAzure_Storage::PREFIX_STORAGE_HEADER . 'blob-public-access'] = $acl;
}
@@ -382,6 +385,7 @@
// Perform request
$response = $this->_performRequest($containerName, '?restype=container&comp=acl', Zend_Http_Client::PUT, $headers, false, $policies, Zend_Service_WindowsAzure_Storage::RESOURCE_CONTAINER, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -396,9 +400,11 @@
public function getContainer($containerName = '')
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -416,6 +422,7 @@
$metadata
);
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -430,9 +437,11 @@
public function getContainerMetadata($containerName = '')
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -452,12 +461,15 @@
public function setContainerMetadata($containerName = '', $metadata = array(), $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if (!is_array($metadata)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Meta data should be an array of key and value pairs.');
}
if (count($metadata) == 0) {
@@ -476,6 +488,7 @@
// Perform request
$response = $this->_performRequest($containerName, '?restype=container&comp=metadata', Zend_Http_Client::PUT, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_CONTAINER, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -490,9 +503,11 @@
public function deleteContainer($containerName = '', $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -505,6 +520,7 @@
// Perform request
$response = $this->_performRequest($containerName, '?restype=container', Zend_Http_Client::DELETE, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_CONTAINER, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -524,16 +540,16 @@
{
// Build query string
$queryString = array('comp=list');
- if ($prefix !== null) {
+ if (!is_null($prefix)) {
$queryString[] = 'prefix=' . $prefix;
}
- if ($maxResults !== null) {
+ if (!is_null($maxResults)) {
$queryString[] = 'maxresults=' . $maxResults;
}
- if ($marker !== null) {
+ if (!is_null($marker)) {
$queryString[] = 'marker=' . $marker;
}
- if ($include !== null) {
+ if (!is_null($include)) {
$queryString[] = 'include=' . $include;
}
$queryString = self::createQueryStringFromArray($queryString);
@@ -545,8 +561,9 @@
$xmlMarker = (string)$this->_parseResponse($response)->NextMarker;
$containers = array();
- if ($xmlContainers !== null) {
+ if (!is_null($xmlContainers)) {
for ($i = 0; $i < count($xmlContainers); $i++) {
+
$containers[] = new Zend_Service_WindowsAzure_Storage_BlobContainer(
(string)$xmlContainers[$i]->Name,
(string)$xmlContainers[$i]->Etag,
@@ -556,17 +573,18 @@
}
}
$currentResultCount = $currentResultCount + count($containers);
- if ($maxResults !== null && $currentResultCount < $maxResults) {
- if ($xmlMarker !== null && $xmlMarker != '') {
+ if (!is_null($maxResults) && $currentResultCount < $maxResults) {
+ if (!is_null($xmlMarker) && $xmlMarker != '') {
$containers = array_merge($containers, $this->listContainers($prefix, $maxResults, $xmlMarker, $include, $currentResultCount));
}
}
- if ($maxResults !== null && count($containers) > $maxResults) {
+ if (!is_null($maxResults) && count($containers) > $maxResults) {
$containers = array_slice($containers, 0, $maxResults);
}
return $containers;
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -586,27 +604,33 @@
public function putBlob($containerName = '', $blobName = '', $localFileName = '', $metadata = array(), $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($localFileName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Local file name is not specified.');
}
if (!file_exists($localFileName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Local file not found.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Check file size
if (filesize($localFileName) >= self::MAX_BLOB_SIZE) {
- return $this->putLargeBlob($containerName, $blobName, $localFileName, $metadata, $leaseId);
+ return $this->putLargeBlob($containerName, $blobName, $localFileName, $metadata, $leaseId, $additionalHeaders);
}
// Put the data to Windows Azure Storage
@@ -628,21 +652,25 @@
public function putBlobData($containerName = '', $blobName = '', $data = '', $metadata = array(), $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Create metadata headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
$headers = array_merge($headers, $this->_generateMetadataHeaders($metadata));
@@ -661,6 +689,7 @@
// Perform request
$response = $this->_performRequest($resourceName, '', Zend_Http_Client::PUT, $headers, false, $data, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if ($response->isSuccessful()) {
+
return new Zend_Service_WindowsAzure_Storage_BlobInstance(
$containerName,
$blobName,
@@ -676,6 +705,7 @@
$metadata
);
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -688,33 +718,40 @@
* @param string $localFileName Local file name to be uploaded
* @param array $metadata Key/value pairs of meta data
* @param string $leaseId Lease identifier
+ * @param array $additionalHeaders Additional headers. See http://msdn.microsoft.com/en-us/library/dd179371.aspx for more information.
* @return object Partial blob properties
* @throws Zend_Service_WindowsAzure_Exception
*/
- public function putLargeBlob($containerName = '', $blobName = '', $localFileName = '', $metadata = array(), $leaseId = null)
+ public function putLargeBlob($containerName = '', $blobName = '', $localFileName = '', $metadata = array(), $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($localFileName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Local file name is not specified.');
}
if (!file_exists($localFileName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Local file not found.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Check file size
if (filesize($localFileName) < self::MAX_BLOB_SIZE) {
- return $this->putBlob($containerName, $blobName, $localFileName, $metadata);
+ return $this->putBlob($containerName, $blobName, $localFileName, $metadata, $leaseId, $additionalHeaders);
}
// Determine number of parts
@@ -729,6 +766,7 @@
// Open file
$fp = fopen($localFileName, 'r');
if ($fp === false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Could not open local file.');
}
@@ -752,7 +790,7 @@
fclose($fp);
// Put block list
- $this->putBlockList($containerName, $blobName, $blockIdentifiers, $metadata, $leaseId);
+ $this->putBlockList($containerName, $blobName, $blockIdentifiers, $metadata, $leaseId, $additionalHeaders);
// Return information of the blob
return $this->getBlobInstance($containerName, $blobName, null, $leaseId);
@@ -771,24 +809,29 @@
public function putBlock($containerName = '', $blobName = '', $identifier = '', $contents = '', $leaseId = null)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($identifier === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Block identifier is not specified.');
}
if (strlen($contents) > self::MAX_BLOB_TRANSFER_SIZE) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Block size is too big.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
@@ -798,6 +841,7 @@
// Upload
$response = $this->_performRequest($resourceName, '?comp=block&blockid=' . base64_encode($identifier), Zend_Http_Client::PUT, $headers, false, $contents, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -816,18 +860,23 @@
public function putBlockList($containerName = '', $blobName = '', $blockList = array(), $metadata = array(), $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if (count($blockList) == 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Block list does not contain any elements.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
@@ -839,15 +888,15 @@
// Generate block list request
$fileContents = utf8_encode(implode("\n", array(
- '',
- '',
- $blocks,
- ''
+ '',
+ '',
+ $blocks,
+ ''
)));
// Create metadata headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
$headers = array_merge($headers, $this->_generateMetadataHeaders($metadata));
@@ -863,6 +912,7 @@
// Perform request
$response = $this->_performRequest($resourceName, '?comp=blocklist', Zend_Http_Client::PUT, $headers, false, $fileContents, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -881,15 +931,19 @@
public function getBlockList($containerName = '', $blobName = '', $snapshotId = null, $leaseId = null, $type = 0)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($type < 0 || $type > 2) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Invalid type of block list to retrieve.');
}
@@ -904,13 +958,13 @@
// Headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
// Build query string
$queryString = array('comp=blocklist', 'blocklisttype=' . $blockListType);
- if ($snapshotId !== null) {
+ if (!is_null($snapshotId)) {
$queryString[] = 'snapshot=' . $snapshotId;
}
$queryString = self::createQueryStringFromArray($queryString);
@@ -945,6 +999,7 @@
return $returnValue;
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -964,24 +1019,29 @@
public function createPageBlob($containerName = '', $blobName = '', $size = 0, $metadata = array(), $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
if ($size <= 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Page blob size must be specified.');
}
// Create metadata headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
$headers = array_merge($headers, $this->_generateMetadataHeaders($metadata));
@@ -1002,6 +1062,7 @@
// Perform request
$response = $this->_performRequest($resourceName, '', Zend_Http_Client::PUT, $headers, false, '', Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if ($response->isSuccessful()) {
+
return new Zend_Service_WindowsAzure_Storage_BlobInstance(
$containerName,
$blobName,
@@ -1017,6 +1078,7 @@
$metadata
);
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1037,33 +1099,40 @@
public function putPage($containerName = '', $blobName = '', $startByteOffset = 0, $endByteOffset = 0, $contents = '', $writeMethod = self::PAGE_WRITE_UPDATE, $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
if ($startByteOffset % 512 != 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Start byte offset must be a modulus of 512.');
}
if (($endByteOffset + 1) % 512 != 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('End byte offset must be a modulus of 512 minus 1.');
}
// Determine size
$size = strlen($contents);
if ($size >= self::MAX_BLOB_TRANSFER_SIZE) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Page blob size must not be larger than ' + self::MAX_BLOB_TRANSFER_SIZE . ' bytes.');
}
// Create metadata headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
@@ -1084,6 +1153,7 @@
// Perform request
$response = $this->_performRequest($resourceName, '?comp=page', Zend_Http_Client::PUT, $headers, false, $contents, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1102,27 +1172,33 @@
public function getPageRegions($containerName = '', $blobName = '', $startByteOffset = 0, $endByteOffset = 0, $leaseId = null)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
if ($startByteOffset % 512 != 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Start byte offset must be a modulus of 512.');
}
if ($endByteOffset > 0 && ($endByteOffset + 1) % 512 != 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('End byte offset must be a modulus of 512 minus 1.');
}
// Create metadata headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
@@ -1144,8 +1220,10 @@
} else {
$xmlRanges = array($result->PageRange);
}
-
+
+
$ranges = array();
+
for ($i = 0; $i < count($xmlRanges); $i++) {
$ranges[] = new Zend_Service_WindowsAzure_Storage_PageRegionInstance(
(int)$xmlRanges[$i]->Start,
@@ -1155,6 +1233,7 @@
return $ranges;
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1176,33 +1255,41 @@
public function copyBlob($sourceContainerName = '', $sourceBlobName = '', $destinationContainerName = '', $destinationBlobName = '', $metadata = array(), $sourceSnapshotId = null, $destinationLeaseId = null, $additionalHeaders = array())
{
if ($sourceContainerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Source container name is not specified.');
}
if (!self::isValidContainerName($sourceContainerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Source container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($sourceBlobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Source blob name is not specified.');
}
if ($destinationContainerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Destination container name is not specified.');
}
if (!self::isValidContainerName($destinationContainerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Destination container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($destinationBlobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Destination blob name is not specified.');
}
if ($sourceContainerName === '$root' && strpos($sourceBlobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
if ($destinationContainerName === '$root' && strpos($destinationBlobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Create metadata headers
$headers = array();
- if ($destinationLeaseId !== null) {
+ if (!is_null($destinationLeaseId)) {
$headers['x-ms-lease-id'] = $destinationLeaseId;
}
$headers = array_merge($headers, $this->_generateMetadataHeaders($metadata));
@@ -1214,7 +1301,7 @@
// Resource names
$sourceResourceName = self::createResourceName($sourceContainerName, $sourceBlobName);
- if ($sourceSnapshotId !== null) {
+ if (!is_null($sourceSnapshotId)) {
$sourceResourceName .= '?snapshot=' . $sourceSnapshotId;
}
$destinationResourceName = self::createResourceName($destinationContainerName, $destinationBlobName);
@@ -1225,6 +1312,7 @@
// Perform request
$response = $this->_performRequest($destinationResourceName, '', Zend_Http_Client::PUT, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if ($response->isSuccessful()) {
+
return new Zend_Service_WindowsAzure_Storage_BlobInstance(
$destinationContainerName,
$destinationBlobName,
@@ -1240,6 +1328,7 @@
$metadata
);
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1258,15 +1347,19 @@
public function getBlob($containerName = '', $blobName = '', $localFileName = '', $snapshotId = null, $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($localFileName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Local file name is not specified.');
}
@@ -1288,25 +1381,28 @@
public function getBlobData($containerName = '', $blobName = '', $snapshotId = null, $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
// Build query string
$queryString = array();
- if ($snapshotId !== null) {
+ if (!is_null($snapshotId)) {
$queryString[] = 'snapshot=' . $snapshotId;
}
$queryString = self::createQueryStringFromArray($queryString);
// Additional headers?
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
foreach ($additionalHeaders as $key => $value) {
@@ -1321,6 +1417,7 @@
if ($response->isSuccessful()) {
return $response->getBody();
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1339,28 +1436,32 @@
public function getBlobInstance($containerName = '', $blobName = '', $snapshotId = null, $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Build query string
$queryString = array();
- if ($snapshotId !== null) {
+ if (!is_null($snapshotId)) {
$queryString[] = 'snapshot=' . $snapshotId;
}
$queryString = self::createQueryStringFromArray($queryString);
// Additional headers?
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
foreach ($additionalHeaders as $key => $value) {
@@ -1375,26 +1476,27 @@
if ($response->isSuccessful()) {
// Parse metadata
$metadata = $this->_parseMetadataHeaders($response->getHeaders());
-
+
// Return blob
return new Zend_Service_WindowsAzure_Storage_BlobInstance(
- $containerName,
- $blobName,
- $snapshotId,
- $response->getHeader('Etag'),
- $response->getHeader('Last-modified'),
- $this->getBaseUrl() . '/' . $containerName . '/' . $blobName,
- $response->getHeader('Content-Length'),
- $response->getHeader('Content-Type'),
- $response->getHeader('Content-Encoding'),
- $response->getHeader('Content-Language'),
- $response->getHeader('Cache-Control'),
- $response->getHeader('x-ms-blob-type'),
- $response->getHeader('x-ms-lease-status'),
- false,
- $metadata
+ $containerName,
+ $blobName,
+ $snapshotId,
+ $response->getHeader('Etag'),
+ $response->getHeader('Last-modified'),
+ $this->getBaseUrl() . '/' . $containerName . '/' . $blobName,
+ $response->getHeader('Content-Length'),
+ $response->getHeader('Content-Type'),
+ $response->getHeader('Content-Encoding'),
+ $response->getHeader('Content-Language'),
+ $response->getHeader('Cache-Control'),
+ $response->getHeader('x-ms-blob-type'),
+ $response->getHeader('x-ms-lease-status'),
+ false,
+ $metadata
);
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1412,15 +1514,19 @@
public function getBlobMetadata($containerName = '', $blobName = '', $snapshotId = null, $leaseId = null)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
@@ -1442,15 +1548,19 @@
public function setBlobMetadata($containerName = '', $blobName = '', $metadata = array(), $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
if (count($metadata) == 0) {
@@ -1459,7 +1569,7 @@
// Create metadata headers
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
$headers = array_merge($headers, $this->_generateMetadataHeaders($metadata));
@@ -1472,6 +1582,7 @@
// Perform request
$response = $this->_performRequest($containerName . '/' . $blobName, '?comp=metadata', Zend_Http_Client::PUT, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1490,18 +1601,23 @@
public function setBlobProperties($containerName = '', $blobName = '', $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
if (count($additionalHeaders) == 0) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('No additional headers are specified.');
}
@@ -1509,7 +1625,7 @@
$headers = array();
// Lease set?
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
@@ -1521,6 +1637,7 @@
// Perform request
$response = $this->_performRequest($containerName . '/' . $blobName, '?comp=properties', Zend_Http_Client::PUT, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1538,15 +1655,19 @@
public function getBlobProperties($containerName = '', $blobName = '', $snapshotId = null, $leaseId = null)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
@@ -1566,28 +1687,32 @@
public function deleteBlob($containerName = '', $blobName = '', $snapshotId = null, $leaseId = null, $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Build query string
$queryString = array();
- if ($snapshotId !== null) {
+ if (!is_null($snapshotId)) {
$queryString[] = 'snapshot=' . $snapshotId;
}
$queryString = self::createQueryStringFromArray($queryString);
// Additional headers?
$headers = array();
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
foreach ($additionalHeaders as $key => $value) {
@@ -1600,6 +1725,7 @@
// Perform request
$response = $this->_performRequest($resourceName, $queryString, Zend_Http_Client::DELETE, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
if (!$response->isSuccessful()) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1617,15 +1743,19 @@
public function snapshotBlob($containerName = '', $blobName = '', $metadata = array(), $additionalHeaders = array())
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
@@ -1643,6 +1773,7 @@
if ($response->isSuccessful()) {
return $response->getHeader('x-ms-snapshot');
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1660,22 +1791,26 @@
public function leaseBlob($containerName = '', $blobName = '', $leaseAction = self::LEASE_ACQUIRE, $leaseId = null)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
if ($blobName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blob name is not specified.');
}
if ($containerName === '$root' && strpos($blobName, '/') !== false) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Blobs stored in the root container can not have a name containing a forward slash (/).');
}
// Additional headers?
$headers = array();
$headers['x-ms-lease-action'] = strtolower($leaseAction);
- if ($leaseId !== null) {
+ if (!is_null($leaseId)) {
$headers['x-ms-lease-id'] = $leaseId;
}
@@ -1684,6 +1819,9 @@
// Perform request
$response = $this->_performRequest($resourceName, '?comp=lease', Zend_Http_Client::PUT, $headers, false, null, Zend_Service_WindowsAzure_Storage::RESOURCE_BLOB, Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_WRITE);
+
+
+
if ($response->isSuccessful()) {
return new Zend_Service_WindowsAzure_Storage_LeaseInstance(
$containerName,
@@ -1691,6 +1829,7 @@
$response->getHeader('x-ms-lease-id'),
$response->getHeader('x-ms-lease-time'));
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1711,27 +1850,29 @@
public function listBlobs($containerName = '', $prefix = '', $delimiter = '', $maxResults = null, $marker = null, $include = null, $currentResultCount = 0)
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
// Build query string
$queryString = array('restype=container', 'comp=list');
- if ($prefix !== null) {
+ if (!is_null($prefix)) {
$queryString[] = 'prefix=' . $prefix;
}
if ($delimiter !== '') {
$queryString[] = 'delimiter=' . $delimiter;
}
- if ($maxResults !== null) {
+ if (!is_null($maxResults)) {
$queryString[] = 'maxresults=' . $maxResults;
}
- if ($marker !== null) {
+ if (!is_null($marker)) {
$queryString[] = 'marker=' . $marker;
}
- if ($include !== null) {
+ if (!is_null($include)) {
$queryString[] = 'include=' . $include;
}
$queryString = self::createQueryStringFromArray($queryString);
@@ -1741,10 +1882,11 @@
if ($response->isSuccessful()) {
// Return value
$blobs = array();
-
+
// Blobs
$xmlBlobs = $this->_parseResponse($response)->Blobs->Blob;
- if ($xmlBlobs !== null) {
+ if (!is_null($xmlBlobs)) {
+
for ($i = 0; $i < count($xmlBlobs); $i++) {
$properties = (array)$xmlBlobs[$i]->Properties;
@@ -1771,7 +1913,8 @@
// Blob prefixes (folders)
$xmlBlobs = $this->_parseResponse($response)->Blobs->BlobPrefix;
- if ($xmlBlobs !== null) {
+ if (!is_null($xmlBlobs)) {
+
for ($i = 0; $i < count($xmlBlobs); $i++) {
$blobs[] = new Zend_Service_WindowsAzure_Storage_BlobInstance(
$containerName,
@@ -1796,17 +1939,18 @@
// More blobs?
$xmlMarker = (string)$this->_parseResponse($response)->NextMarker;
$currentResultCount = $currentResultCount + count($blobs);
- if ($maxResults !== null && $currentResultCount < $maxResults) {
- if ($xmlMarker !== null && $xmlMarker != '') {
+ if (!is_null($maxResults) && $currentResultCount < $maxResults) {
+ if (!is_null($xmlMarker) && $xmlMarker != '') {
$blobs = array_merge($blobs, $this->listBlobs($containerName, $prefix, $delimiter, $maxResults, $marker, $include, $currentResultCount));
}
}
- if ($maxResults !== null && count($blobs) > $maxResults) {
+ if (!is_null($maxResults) && count($blobs) > $maxResults) {
$blobs = array_slice($blobs, 0, $maxResults);
}
return $blobs;
} else {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception($this->_getErrorMessage($response, 'Resource could not be accessed.'));
}
}
@@ -1826,9 +1970,11 @@
public function generateSharedAccessUrl($containerName = '', $blobName = '', $resource = 'b', $permissions = 'r', $start = '', $expiry = '', $identifier = '')
{
if ($containerName === '') {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name is not specified.');
}
if (!self::isValidContainerName($containerName)) {
+ require_once 'Zend/Service/WindowsAzure/Exception.php';
throw new Zend_Service_WindowsAzure_Exception('Container name does not adhere to container naming conventions. See http://msdn.microsoft.com/en-us/library/dd135715.aspx for more information.');
}
@@ -1889,11 +2035,6 @@
*/
public function registerStreamWrapper($name = 'azure')
{
- /**
- * @see Zend_Service_WindowsAzure_Storage_Blob_Stream
- */
- require_once 'Zend/Service/WindowsAzure/Storage/Blob/Stream.php';
-
stream_register_wrapper($name, 'Zend_Service_WindowsAzure_Storage_Blob_Stream');
$this->registerAsClient($name);
}