<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
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.Zend Framework: Zend_Service_Rackspace_Files Component Proposal
Proposed Component Name
Zend_Service_Rackspace_Files
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend_Service_Rackspace_Files
Proposers
Enrico Zimuel
Zend Liaison
TBD
Revision
1.0 - 2 May 2011: Initial Draft.
1.1 - 11 May 2011: Completed the prototype, added some use cases (wiki revision: 10)Table of Contents
1. Overview
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.
2. References
3. Component Requirements, Constraints, and Acceptance Criteria
- 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.
4. Dependencies on Other Framework Components
- Zend\Http\Client
5. Theory of Operation
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.
6. Milestones / Tasks
- Milestone 1: Complete the proposal [DONE]
- Milestone 2: Prototype of the Zend\Service\Rackspace\Files [DONE] (see the working in progress here ezimuel/zf2 github)
- Milestone 3: Provide examples and Unit tests
- Milestone 4: Write the documentation
- Milestone 5: Propose an adapter for the Zend\Cloud\StorageService
7. Class Index
- Zend\Service\Rackspace\Rackspace
- Zend\Service\Rackspace\Exception
- Zend\Service\Rackspace\Files
- Zend\Service\Rackspace\Files\Object
- Zend\Service\Rackspace\Files\ObjectList
- Zend\Service\Rackspace\Files\Container
- Zend\Service\Rackspace\Files\ContainerList
8. Use Cases
| UC-01 |
|---|
Get all the containers and the files for each container.
| UC-02 |
|---|
Add an object (file) in a container. The metadata array is optional.
| UC-03 |
|---|
Create a container, store an object, and delete it. The metadata array is optional.
| UC-04 |
|---|
Check if a container is CDN enabled. If not, try to enable it.
| UC-05 |
|---|
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).