Synchronizes a local folder with a remote Nuxeo server.
Currently uses the CMIS protocol, though more efficient protocols may be investigated.
WARNING: This code is very very alpha quality (result of 2 days sprint at Nuxeo). It will eat your data, especially in case of concurrent editing situations.
The cool people under Linux or OSX just run:
sudo pip install git+http://github.com/nuxeo/nuxeo-otg.git
The poor lads under Windows will propably prefer waiting for someone to
build a binary distribution (will probably be bundled with the sister
project nuxeo-otg-win
that provides a shiny Windows Explorer shell
extension).
See below for virtualenv
based install.
Create a workspace in Nuxeo and a new local folder on your desktop
Then tell notg to bind them with:
notg attach --local-folder notg_workspace \
--remote-folder /default-domain/workspaces/Workspace \
--repository-url http://localhost:8080/nuxeo/atom/cmis \
--username Administrator --password Administrator
touch /home/ogrisel/notg_workspace/empty_file.txt
You can then ask notg to scan their content and then list the status of the files with:
notg refresh
notg status
/home/ogrisel/notg_workspace/empty_file.txt locally_created
You can then manually trigger a sync with:
notg sync
2011-02-19 19:23:34,668 INFO Pushing new object with path: empty_file.txt
notg status
/home/ogrisel/notg_workspace/empty_file.txt synchronized
To automatically scan both the server and the local folder and sync their content use:
notg autosync
Use Ctrl-C to interrupt. A real daemon mode is planned.
To unlink the folders and reset all meta-data tracked by Nuxeo On the Go,
simply delete the ~/.nuxeo-otg
folder.
First, you need to make sure you have:
- python 2.6 or 2.7
- virtualenv and pip
To install the needed dependencies, type:
make env
On linux you might need to install libyaml-dev first:
sudo apt-get install libyaml-dev
make env
Then type:
. env/bin/activate
Install a Nuxeo DM 5.4.0+ instance from http://nuxeo.com and launch it (default settings are fine for testing).
Then in the nuxeo-otg
folder type:
make test
- implement asynchronous process that continuously refresh & synchronize using polling
- use watchdog to monitor FS incrementally instead of local polling
- use smart CMISQL queries to only download the properties for files that have changed (need access to the audit log to detect deleted files)
- use digest to ensure that files have really changed or don't need a sync
- implement local client renaming of files in conflicted state
- implement a better storage for metadata (currently load everything in memory an greedily hit the disk with the pickle module): use sqlite / SQLAlchemy instead
Nuxeo provides a modular, extensible Java-based [open source software platform for enterprise content management] 1 and packaged applications for [document management] 2, [digital asset management] 3 and [case management] 4. Designed by developers for developers, the Nuxeo platform offers a modern architecture, a powerful plug-in model and extensive packaging capabilities for building content applications.
More information on: http://www.nuxeo.com/