Manage your users' cloud services from your application.
$ npm install --save cloud-explorer
Here is an example on how to use Cloud Explorer's router to expose an API used by the front end to list files, read and write - see this file for a complete example
// before this create an express application
const CloudExplorer = require('cloud-explorer');
const router = new Router({
dropbox: {
clientId: '8lxz0i3aeztt0im',
clientSecret: 'twhvu6ztqnefkh6',
redirectUri: `${rootUrl}/ce/dropbox/oauth_callback`,
state: 'abcd'
},
ftp: {redirectUri: `${rootUrl}/ce/ftp/signin`},
});
app.use('/ce', router);
There is also an example of use in Silex website builder here.
For a complete example see the dist folder.
On the client side, the HTML:
<iframe id="ceIFrame" class="container" src="/ce/cloud-explorer/cloud-explorer.html" />
And the Javascript:
const ce = document.querySelector('#ceIFrame').contentWindow.ce;
ce.showThumbnails(true);
ce.openFile(['.jpg', '.jpeg', '.png', '.gif'])
.then(fileInfo => {
if(fileInfo) alert('you chose:' + fileInfo.path);
else alert('you canceled');
})
.catch(e => alert('an error occured: ' + e.message));
In order to know what are the possible options, please read the code
When creating CE2 router, your app can pass it options, please see the example in lib/index.js
. This is how you are supposed to enable or disable cloud services, or features.
Also you can add custom services and image banks, for this you can use the methods of the Router class: addService
and addImageBank
.
Notes:
- if you enable only one service, CE2 will be in "single service" mode and the user will not be presented the list of services but directly enters the only service (if logged in).
To contribute to Cloud Explorer, clone this repo and build:
$ git clone github:silexlabs/CloudExplorer2
$ cd CloudExplorer2
$ npm i
$ npm run build
This will compile the JS files from src/
with ReactJS and Babel. The generated files will go in dist/
.
You can serve dist
on http://localhost:6805
with
$ npm start
And then access the demo app on http://localhost:6805/ce/cloud-explorer/
This is what is done on heroku here: a live demo
Please feel free to ask in the issues, and contribute docs in the wiki.
For now, the best way to know the API is to take a look at the App
class which exposes all CE methods here.
CE is configured with environment variables:
- PORT
- SERVER_URL
- DROPBOX_APP_ID
- DROBOX_APP_SECRET
- DROPBOX_APP_REDIRECT
- GITHUB_APP_ID
- GITHUB_APP_SECRET
- GITHUB_APP_REDIRECT
- UNSPLASH_ACCESS_KEY
- UNSPLASH_APP_NAME
- UNSPLASH_OFFLINE_TEST_PATH
- ENABLE_HYPERDRIVE