UNPKG

3.01 kBMarkdownView Raw
1# Unifile, unified access to cloud storage services.
2
3Nodejs library to access cloud storage services with a common API.
4
5[![NPM](https://nodei.co/npm/unifile.png)](https://npmjs.org/package/unifile)
6
7Currently supported services
8
9* FTP
10* SFTP
11* Dropbox
12* GitHub: use git as a cloud with repository and branches as folder
13* [RemoteStorage](https://remotestorage.io/)
14* WebDAV
15* Local filesystem (might be useful to copy from your drive to your cloud)
16
17# Motivation
18
19With the rise of cloud services and the need to be independant of such or such provider, we decided to create a common tool to access a lot of online plateform.
20
21This aim to give the user of your app the liberty of choosing where they want to store their data.
22
23
24# Use
25
26Requirements
27
28* [Node.js](http://nodejs.org/) > 6.0.0
29
30# Use in your Node.js project
31
32Add unifile lib to your project
33
34```
35$ npm install unifile --save
36```
37
38## Vanilla Node.js
39
40Unifile use an API similar to the native `fs` module but with Bluebird Promises instead of callbacks.
41
42You can find the whole API documentation on the [project page](https://silexlabs.github.io/unifile/).
43
44## With Express
45
46Then write a small Node.js server [like this one](./samples/simple-api-server.js). Or play with the sample:
47
48```
49$ cd samples
50$ npm install
51$ node simple-api-server.js
52```
53
54Then open `http://localhost:6805/` and play with your cloud storages.
55
56## CloudExplorer
57
58You could also take a look at the UI called [CloudExplorer](https://github.com/lexoyo/CloudExplorer2): here's a [live demo](https://cloud-explorer2.herokuapp.com/).
59
60# Privacy
61
62Most of the service in Unifile uses [OAuth 2](http://wiki.oauth.net/w/page/25236487/OAuth%202) to connect the user into the service. This means Unifile doesn't have the user credential at any time.
63
64For the server that doesn't support OAuth, like FTP, the credentials are never stored.
65
66In all case, Unifile never uses any data of the user.
67
68# License
69
70[license: MIT](./LICENSE)
71
72# Developer guide
73
74## Add a service
75
76Unifile works with plugins to connect with more and more services. To find all the plugins available, you can follow the [unifile tag](https://github.com/topics/unifile) on GitHub. Or you can browse this non-exhaustive list:
77* [Unifile WebDAV](https://github.com/silexlabs/unifile-webdav)
78
79
80Unifile is built on modularity, meaning you can create a connector to a service a plug it in Unifile withouth modifying Unifile. So feel free to add any services you need! Don't forget to let us know about it so we could tell everyone :wink:
81
82Here is a list of services which could be useful
83
84* Google Drive
85* Amazon S3
86* CozyCloud, BTSync
87* SkyDrive, RapidShare, CloudMine, FilesAnywhere
88* SugarSync
89* Facebook (if possibe?)
90* a random list of other cloud storage services: Amazon Cloud Drive, Bitcasa, Box, DollyDrive, iCloud Drive, Microsoft OneDrive, SpiderOak, SugarSync, Wuala
91
92## Roadmap
93
94**Let's discuss [this list of issues which set the future of unifile](https://github.com/silexlabs/unifile/labels/enhancement)**
95