I need a backend framewwork that we will incorporate with our unified API that abstracts the interaction and access to Dropbox, [login to view URL], SugarSync, Google Drive, Sky Drive, Flickr. I also need after this project the exact logic to interact with Azure blob storage for files and AWS S3 for files. You will only be responsible for backend work and not in the creation of the API itself. We will be handling all exposed Rest calls.
It must be a single framework that according to its contructor will make or use the correct required unit in the background to any of the services. So if we were to call [login to view URL](Dropbox) I would get all the files for Dropbox or [login to view URL](SugarSync) would give me the folders in SugarSync, etc.
The framework must implement listing of files and folders, rename, move, download, upload, etc. It must be able to use every available API call from any of the services and this must be abstracted from the developers. If the action is not supported a safe error must be returned. Our developers should not care about any of the logic required to communicate with the different servcies as this must be abstracted.
The framework must implement copying or transferring files from one service to another. It must support a complete folder or individual files. Ex. Dropbox to Google Drive. All interaction must be by individual folders or files. If a folder has nested folders it must copy those too. If multiple folders or files need to be transferred or copy our API will handle that logic by making multiple calls through the framework to achieve the desired result.
The framework must provide an abstracted initial log in mechanism that is capable of persisting the different authentication keys from the different services so the Node.js server is capable of performing all of the operations without user interaction once the user has authorized the app.
A simplified authentication, oAuth, unit is required in this project to simplify this process and abstract this logic from any of the different services.
The framework must be able to consolidate the file and folder listings from the different services that the user is subscribed too as well as the file size and metadata properties. If a method call requests file or folder listings from Dropbox and Google Drive then it must return an object that contains a consolidated result set. Individual files and folders must contain the origin location, etc.
This will be a work in progress as more features are added so we are looking for a long term relationship.