adapter of other object storage interface
The fragment nature of Object Storage APIs slows the adopting of object storage. Maybe we can make swift as a gateway of object storage to supply an uniform API. Add an adapter to swift to transform swift APIs to other object storage APIs. Then, the data is stored in other object storage devices. Now, here is the blueprint. Let's hack out the details of the requirements.
The full specification link is: http://
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Tong Yanqun
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Whiteboard
With the adapter middle-ware configured in Swift, the whole work flow will like the image below:
(Note: This image will be normally displayed in edit view.)
+------
| | | | Swift | |
| | | Swift | APIs | |
| KeyStone <------------+ Proxy <--------+ Glance |
| | | | | |
| | | | | |
+------
| |
| |
| |
| +------
| | |
| | Object, Container, |
| | Account Controller |
| +------
| | Object Storage
| | APIs(S3, CDMI, etc.)
| +------v------+
| | Object |
| | Storage |
The Object Storage Device will use the KeyStone as the Auth server. It is plug-able in the whole system. All the object storage device which can authenticate request with keystone can be plugged in the Swift. So this adapter layer will make Swift's logic more simple, and make focus to the expansibility and compatibility.