OmStore Cloud API

advertisement
OmStore Cloud API
Harshit Agarwal
Sohil Habib
About Us
● We are graduate students at CMU
● Currently at CMU Silicon Valley campus
● Working part time with the Omlet team since Fall 2014
Table of Contents
•
•
•
•
•
•
•
Project Motivation
Features
API Specifications
Use Cases
Potential Applications
Future work
Conclusion
Project Motivation
Users have started becoming more concerned about the following issues:
● Is the privacy of their data guaranteed?
● Are their conversations and other personal content in safe hands?
● Are closed networks monetizing their data?
● Should all the data be controlled by US based cloud providers for nonUS users?
Project Motivation
The integration with cloud providers has issues like:
● High number of cloud providers with different APIs makes it prohibitive to
provide support for all cloud providers.
● A specification is needed to define an interface that cloud storage service
providers can implement, to enable Omlet and OmStore powered
applications’ users to use their cloud service seamlessly.
Features
● Provides OmStore Cloud package that can be easily deployed by users on
their PCs, AWS or any other virtual computing platform, thus giving them full
ownership of their data.
● Registration service to allow OmStore compliant cloud service endpoints to
be used with OmStore supported apps (like Omlet).
● An intuitive open RESTful API that can be easily used and extended to build
applications and services over OmStore.
● Modular enough to allow integration with any DB or any File storage service.
Features
ASUS gallery powered by the Omlet
application, with OmStore as one of the
cloud providers.
API Specification
OAuth2 API
●
●
/user
○
POST /register - Register an account and password via the web (admin)
○
POST /logout - Logout from a session
○
POST - Return a webpage with the authorization code as the title
○
GET - Return a webpage with a form for a user to log in
/auth
○
GET /signin - Redirects to the login page
○
POST /code - Returns the access token, given correct authorization code
API Specification
Container API
●
/container
○
GET /{account}/containers - Lists all the containers
○
DELETE /{account}/{container} - Recursively deletes a specific container
○
GET /{account}/{container}/share - Makes a container sharable and returns a
shared authentication token for that container
Container
Files
API Specification
File API
●
/file
○
PUT /{account}/{container}/{specifiedId} - Writes a file to specific container
○
GET /{account}/{container}/{specifiedId} - Reads a specified file
○
GET /{md5} - Reads a file with matching MD5 hash of the file content
○
GET /{account}/{container}/files - Lists all the files for a given container
○
DELETE /{account}/{container}/{specifiedId} - Deletes the specified file
Use-Cases
● OmStore integration with Omlet.
● File browser for users to browse their Omlet chat media.
Omlet Integration
OmStore
1.Upload file
2.Get URL
4.Download file
3.Send
Message
Omlet Server
3.Receive
Message
Omlet Integration
● Messages uploaded to the cloud server.
● Metadata sent to Omlet server. This layer routes this metadata to
the receiver.
● Receiver downloads message files from the sender cloud storage.
● After a certain period receiver stores sent messages on his own
server.
● Allows sending large files without any bandwidth bottleneck.
Omlet Integration
Omlet Chat Media Browser
● Omlet users can browse and share their chat content present on
the OmStore cloud.
● Users can share an entire chats’ media or a particular media entity
with other (non-Omlet) users.
Omlet Chat Media Browser
OmStore
Potential Applications
● Desktop client for OmStore, with drag and drop sync (like Dropbox
and Google Drive applications for PC).
● An OmStore application for users to browse chat data on
smartphones.
● Fitness apps, games or any other applications that require sync
and cloud storage.
Future Work
● HTTPS support for OmStore with
● S3 as file storage
● Message browsing in Media Browser
● Implementing a global and local search for message data
● Video streaming support
Conclusion
● OmStore Open API is a great initiative for apps, as it provides a cloud
backend service out of the box.
● It is clear how simple and easy to use the API is, after integrating it with
Omlet and implementing the file browser using it.
● The sample use cases utilize all the APIs in OmStore therefore serving as
good examples for other projects.
Resources
● Omstore Repo: https://bitbucket.org/tpurtell/omstore
● Contacts:
○ Ben, ben@mobisocial.us
○ Harshit, hagarwal@andrew.cmu.edu
○ Sohil, snhabib@andrew.cmu.edu
Any Questions?
Download