MetaSync is a secure and reliable file synchronization service that uses multiple cloud synchronization services as untrusted storage providers.
MetaSync written in Python. Currently it's developed and tested only with Python 2.7.
To install and use it, it needs Python 2.7 interpreter and python-setuptools package. In addition, it requires phantomjs (>=1.9.2) binary in executable path.
Or you can clone the current devlopment version from github: git clone git@github.com:UWNetworksLab/metasync.git
Release History: Link
After extracting the tarball (or cloning the project), run
python setup.py install
You can test if it's installed correctly by
$ metasync --version MetaSync 0.2
MetaSync allows users to use multpile synchornization services under it. Now it currently supports: Dropbox, Google Drive, OneDrive, Box.net, and Baidu. We are working on adding more providers. To use those services, users need have accounts for them before using MetaSync with the services.
Basic commands for MetaSync are similar with version control systems (e.g., git)
MetaSync users can initialize multiple repositories under various services, which are differentiated through namespaces. In a directory to initialize you can initialize a repo with
$ metasync init [namespace]
For example,
$ metasync init demo do you use encryption (y/n)? > n input storage backends, (e.g., dropbox,google,box,baidu,onedrive,disk) dropbox@auth : dropbox.com account with auth info google@auth : drive.google.com account with auth info box@auth : box.com account with auth info baidu@auth : baidu account with auth info onedrive@auth : onedrive account with auth info disk@path : mock disk service rooting on path > dropbox,google input the number of replicas (default=2) > 1
To specify which services you want to use, you can input the provider names separted with comma. Currently, it supports only one account per service, but we will allow multiple accounts in the next version.
If you haven't used MetaSync for those services, it will ask your account information for them.
Similarly, you can clone a repository from other comptuers (or other location in the same computer)
$ metasync clone demo input one of the storage backends, (e.g., dropbox,google,box) for testing, use disk@/path (e.g., disk@/tmp) > dropbox do you use encryption (y/n)? > n
To add a new or modified file to the repository, you need explicitly checkin those files
$ metasync checkin [files]
Those checked files are currently maintained within the local tree. To merge it into the master for other devices to sync against, you need to call
$ metasync push
On the other hand, to fetch and update files, run
$ metasync fetch $ metasnyc update
You can check the current status
$ metasync status Your branch is ahead of master by 1 commit(s). Changes not checked in: modified: toto
$ metasync gc
MetaSync is an alpha-released version, and we expect many bugs still remain. Please try it out and share any issues with us via Issue tracker.