Giter Club home page Giter Club logo

nuxeo-otg's Introduction

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/

nuxeo-otg's People

Contributors

ogrisel avatar sfermigier avatar

Stargazers

Olivier Adam avatar Arnaud Kervern avatar  avatar  avatar

Watchers

Tiago Cardoso avatar  avatar Thomas Roger avatar Arnaud Kervern avatar Ryan McCue avatar Benoit Delbosc avatar Florent Guillaume avatar Thierry Delprat avatar Laurent Doguin avatar Anahide Tchertchian avatar Thierry Martins avatar Vincent Dutat avatar Mariana Cedica avatar Bogdan Stefanescu avatar stephane lacoin avatar Thibaut Soulcié avatar Thibaud Arguillere avatar James Cloos avatar Jenkins Nuxeo avatar Jackie S avatar Luís Duarte avatar Antoine Taillefer avatar Alain ESCAFFRE avatar Roberto Barbosa avatar Kevin Leturc avatar Jeffrey Hunger avatar  avatar Karl Harris avatar Kyler Connare avatar Guillaume Renard avatar Michaël Vachette avatar  avatar Anne JUBERT avatar Bob Canaway avatar Gildas Lefèvre avatar  avatar  avatar Dmitry Nichiporenko avatar Mincong Huang avatar Laurent DREUILLAT avatar Julian Sabos avatar Ronan DANIELLOU avatar Kevin Pranoto avatar  avatar Gabriel Barata avatar Ethan Steiner avatar Karin Touchie avatar Fábio dos Santos avatar Arup Kumar Sarkar avatar Frantz FISCHER avatar Thierry Casanova avatar Clément Chevalier avatar  avatar John Liggett avatar

Forkers

ogrisel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.