Introduction:
pocket is small dropbox-like client that keeps your files synced. This is a collaborative class project of Operating Systems from Indian Statistical Institute, Kolkata for M.Tech CS Batch 2017-19.
Current Features
- Upload files from local machine to server that are not present.
- Real-time synchronisation of existing files with the server. (updation, deletion, rename etc.)
- Single user multi-client support.
Features that can be Added
- Multiple user support. (To be added later)
Dependency:
To Run and test you need these :
-
librsync :
For Debian/Ubuntu
- run
sudo apt-get install librsync-dev
. (for librsync library) - run
sudo pip install python-librsync
. (for python wrapper)
- run
-
inotify :
For Debian/Ubuntu
- run
sudo apt-get install inotify-tools
. (for inotify library) - run
sudo pip install inotify
. (for python wrapper)
- run
Otherwise, you can install librsync
and inotify
library and then
run $sudo python setup.py install
to install the python wrappers.
Running
This software has following assumptions:
1. The contents of the user directory can only be modified when the application is running.
2. Different clients follow same timezone since they belong to same user.
3. Clients must run on different machines as suggested by name.
Credits
The open-source libraries used in this project:
https://github.com/dsoprea/PyInotify (pynotify)
https://github.com/smartfile/python-librsync (librsync)