Skip to content
stephane-ruhlmann edited this page Apr 17, 2014 · 5 revisions

Welcome to the pydio-sync wiki!

Draft Sync client

Link between Qt UI and Python Sync App

The sync service uses ZMQ to communicate with the UI, we use Python and Qt ZMQ bindings (check out ZeroMQ's website for further information) The sync service is constantly listening to the UI to manage actions such as Start, Pause and Reload for each local folder to synchronize. The UI is subscribed to the service through ZMQ which allows it to be notified of any changes, be it locally or remotely.

Configuration

Pydio sync service needs the following parameters :

  • -s : The server URL, with http and path to pydio. For instance -s http://myserver.com/pydio Default is localhost.
  • -d : The local directory to sync with. For instance -d /Users/John/Documents/PydioFolder
  • -w : Id or alias of workspace to synchronize with. For instance -w myWorkspaceToSync
  • -u : Username. For instance -u JohnDoe
  • -p : Password. For instance -p myPassword
  • -dir : Synchronization direction. For instance -dir up Default is bidirectional.
  • -f : Json file containing the configuration. For instance -f Users/John/Documents/JSONconfigFile.json
  • -z : Available port for ZMQ. For instance -z 4567 Default is 5556.

The program handles both directly passed arguments and JSON files.

Communication handling

The user can send several types of order to the sync client by simply choosing the tasks he wants to execute the action.

Every order is sent through a ZMQ Requester which is basically an established communication channel between the service and the UI.

(check out ZMQ sockets documentation for further information)

PROPOSALS/IDEAS

Each channel corresponds to a different purpose :

  • General status (synced, in pause, starting, syncing) + Progress status ? (through JSON ?)
  • Task's status + Progress status ?
  • Progress of chosen task
  • General progress
  • Local/remote notification (upload, move, delete...)