Skip to content

nuxeo/nuxeo-otg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nuxeo On the Go

Synchronizes a local folder with a remote Nuxeo server.

Currently uses the CMIS protocol, though more efficient protocols may be investigated.

Current state

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.

Installing system wide

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.

Usage

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.

Building locally (for developers)

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

Testing

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

Roadmap, TODOs, shortcomings

  • 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

About Nuxeo

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/

Releases

No releases published

Packages

No packages published

Languages