The Simple Cloud API tackles the main challenges of cloud computing adoption- portability and interoperability. Larry Augustin, CEO, SugarCRM
This interface provides operations for working with unstructured storage services in the cloud, such as S3 and Rackspace Cloud Files.
Please leave feedback on our forums or the Zend_Cloud_Storage proposal.
This is version 0.3 of the interface; it is subject to change until production release in Zend Framework. Consider yourself warned.
Please download the Simple Cloud API and let us know what you think.
**
* Common interface for unstructured cloud storage.
*
* @category Zend
* @package Zend_Cloud_StorageService
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
interface Zend_Cloud_StorageService_StorageService
{
/**
* Get an item from the storage service.
*
* @param string $path
* @param array $options
* @return mixed
*/
public function fetchItem($path, $options = null);
/**
* 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);
/**
* Delete an item in the storage service.
*
* @param string $path
* @param array $options
* @return void
*/
public function deleteItem($path, $options = null);
/**
* Copy an item in the storage service to a given path.
*
* The $destinationPath must be a directory.
*
* @param string $sourcePath
* @param string $destination path
* @param array $options
* @return void
*/
public function copyItem($sourcePath, $destinationPath, $options = null);
/**
* Move an item in the storage service to a given path.
*
* The $destinationPath must be a directory.
*
* @param string $sourcePath
* @param string $destination path
* @param array $options
* @return void
*/
public function moveItem($sourcePath, $destinationPath, $options = null);
/**
* Rename an item in the storage service to a given name.
*
*
* @param string $path
* @param string $name
* @param array $options
* @return void
*/
public function renameItem($path, $name, $options = null);
/**
* List items in the given directory in the storage service
*
* The $path must be a directory
*
*
* @param string $path Must be a directory
* @param array $options
* @return array A list of item names
*/
public function listItems($path, $options = null);
/**
* Get a key/value array of metadata for the given path.
*
* @param string $path
* @param array $options
* @return array
*/
public function fetchMetadata($path, $options = null);
/**
* Store a key/value array of metadata at the given path.
* WARNING: This operation overwrites any metadata that is located at
* $destinationPath.
*
* @param string $destinationPath
* @param array $options
* @return void
*/
public function storeMetadata($destinationPath, $metadata, $options = null);
/**
* Delete a key/value array of metadata at the given path.
*
* @param string $path
* @param array $options
* @return void
*/
public function deleteMetadata($path);
/**
* Get the concrete adapter.
*/
public function getAdapter();
}