Firefox OS/Cloud Storage: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
= Cloud Storage =
= Overview =
{{Draft}}
This project aims at to support a framework for web apps to interact with cloud storage.<br />
== Overview ==
[[File:Cloud Storage Support Overview.png]]
This project aims at to support FirefoxOS to be a bridge between web apps and cloud storages to provide user much better cloud storage user experience on FirefoxOS device.
Cloud Storage framework wants to support following main features
*Universal Storage API
*Universal Storage API
FireFoxOS supports web apps a universal API to access all kinds of storage, such as internal storage, SDCard, USB mass storage, cloud storage, etc.  
Universal Storage API is a general API for web apps to access all kinds of cloud storage.
*Virtual Storage Interface
*Virtual Storage Interface
Virtual Storage Interface is an abstract interface which defining the storage operations for FirefoxOS. Through Virtual Storage Interface, user can easy mount a file system on FirefoxOS.
Virtual Storage Interface is plugin system for cloud storage framework to extend cloud storage option.


== Use cases ==
= Cloud Storage Framework =
=== Play media files saved on cloud ===
== Universal Storage API ==
John saves his media files on dropbox or any other cloud storage and wants to play these media online on his mobile device.<br />
Universal Storage API is a general API for web apps to access all kinds of storage.<br />
In traditional, John needs to do with following steps<br />
According to different purposes, Universal Storage API can be separated into following two categories
#Open the cloud storage app, such as dropbox and google drive, and download the media files to the mobile device.<br />
*Document based API
#Open the player app, such as Gallery and Music, and play the media files locally.<br />
Document based API is used to help web apps save/operate their application data, such as indexedDB, on the cloud storage.
On FirefoxOS device, the steps can be reduced to<br />
*Filesystem based API
#Open the player app and play the media files on cloud storage directly.
Filesystem based API supports web apps to access cloud storage with filesystem operations, such as file create, delete, open, read, write, close, etc.


=== Create and share files on cloud ===
== Virtual Storage Interface ==
Bob wants to take a picture and share it with friend on flickr.<br />
Virtual Storage Interface is plugin system for cloud storage framework to cooperate with different cloud storage.
In traditional, Bob needs to do with following steps<br />
#Open the camera app to take a picture and save the file on the device.<br />
#(Optional) Open a third party app to edit the picture on the device.<br />
#Open the flickr app to upload the file and set it as shared.<br />
On FirefoxOS device, the steps can be reduced to<br />
#Open the camera app to take a picture and save and share the file on cloud storage directly.<br />
#(Optional) Open a third party app to edit the picture on cloud storage directly.<br />


=== File management between clouds ===
== Proposed Solution(s) ==
Amy wants to copy a finished work document form her personal dropbox space to the company google drive space<br />
=== FUSE based solution ===
In traditional, Amy needs to do with following steps<br />
#Open the dropbox app and download the document file to device.
#Open the google drive app and upload the document file.<br />
On FirefoxOS device, the steps can be reduced to<br />
#Open a file browser app and copy the document from dropbox to google drive directly.


== Proposed framework ==
=== JS library solution ===
[[File:Cloud Storage Support.png]]
== Framework Issues ==  
=== Universal Storage API ===
Universal Storage API is a webAPI for all web app to access the device filesystem. This API support web apps to create, remove, read, write, traverse, open and close files and directories on internal storage, SDcard, Cloud Storage, USB mass storage and NAS with the same interface.<br />
Currently, DeviceStorageAPI is targeted as the first version of Universal Storage API. DeviceStorageAPI has already been used for the internal storage and SDcard accessing.<br />
=== Virtual Storage Interface ===
Virtual Storage Interface is an interface for FirefoxOS to accessing different kinds of storage with defined storage operations. By implementing the operations of Virtual Storage Interface with the public APIs of cloud storage, cloud storage can easy camouflage as a device storage in FirefoxOS.<br />
=== In discussion issues ===
*Cloud Storage Account management and Authentication
*Cloud Storage Account management and Authentication
*Data cache/buffering
*Data cache/buffering
33

edits