Zend\Service\Rackspace\Files is a class to manage the Cloud Files service of Rackspace. The Zend\Service\Rackspace\Files component will manage all these features.
Proposed Component Name
1.0 - 2 May 2011: Initial Draft.
1.1 - 11 May 2011: Completed the prototype, added some use cases
Checkout the source code here (wiki revision: 11)
The Cloud Files is a service to store any files in a cloud environment. A user can store an unlimited quantity of files and each file can be as large as 5 gigabytes. The files can be private or public. The private files can be accessed using the API of Rackspace. The public files are accessed using a CDN (Content Delivery Network).
Rackspace exposes a REST API to manage the Cloud Files.
Using the API features of Cloud Files you can:
The current version of the Cloud Files API is 1.0.
Zend\Service\Rackspace\Files is a class to manage the Cloud Files service of Rackspace.
The Zend\Service\Rackspace\Files component will manage all these features.
- This component will require a valid Rackspace account.
- This component will implement full Cloud Files REST API.
- This component will throw an Exception in case of a response error.
Because we would like to implement, in the future, other cloud services of Rackspace (Cloud Servers, Cloud Load Balancers) we propose to write an abstract class (Zend\Service\Rackspace\Rackspace) to share methods and properties common to all the future Rackspace services.
For instance, the authentication request of the Rackspace API is shared between all the cloud services and can be implemented in the abstract class.
Each subclass of Zend\Service\Rackspace will implement a specific service. This proposal is about the Zend\Service\Rackspace\Files service.
- Milestone 1: Complete the proposal [DONE]
- Milestone 2: Prototype of the Zend\Service\Rackspace\Files [DONE] (see the working in progress here)
- Milestone 3: Provide examples and Unit tests
- Milestone 4: Write the documentation
- Milestone 5: Propose an adapter for the Zend\Cloud\StorageService
Get all the containers and the files for each container.
Add an object (file) in a container. The metadata array is optional.
Create a container, store an object, and delete it. The metadata array is optional.
Check if a container is CDN enabled. If not, try to enable it.
Copy an object (file) from a container to another. During the copy you can change the name of the object (file) and add metadata to it (optional).