/** * Store an item in the storage service. * WARNING: This operation overwrites any item that is located at * $destinationPath. * @param string $destinationPath * @param mixed $data * @param array $options * @return boolean */ public function storeItem($destinationPath, $data, $options = null) { // Create a temporary file that will be uploaded $temporaryFilePath = ''; $removeTemporaryFilePath = false; if (is_resource($data)) { $temporaryFilePath = tempnam('', 'azr'); $fpDestination = fopen($temporaryFilePath, 'w'); $fpSource = $data; rewind($fpSource); while (!feof($fpSource)) { fwrite($fpDestination, fread($fpSource, 8192)); } fclose($fpDestination); $removeTemporaryFilePath = true; } elseif (file_exists($data)) { $temporaryFilePath = $data; $removeTemporaryFilePath = false; } else { $temporaryFilePath = tempnam('', 'azr'); file_put_contents($temporaryFilePath, $data); $removeTemporaryFilePath = true; } try { // Upload data $this->_storageClient->putBlob($this->_container, $destinationPath, $temporaryFilePath); } catch (Zend_Service_WindowsAzure_Exception $e) { @unlink($temporaryFilePath); throw new Zend_Cloud_StorageService_Exception('Error on store: ' . $e->getMessage(), $e->getCode(), $e); } if ($removeTemporaryFilePath) { @unlink($temporaryFilePath); } }