GithubHelp home page GithubHelp logo

pydio / pydio-sync Goto Github PK

View Code? Open in Web Editor NEW
82.0 19.0 33.0 12.31 MB

Python version of the Pydio synchronization client

Home Page: https://pydio.com

License: GNU General Public License v3.0

Python 43.86% HTML 9.22% JavaScript 46.92%

pydio-sync's Introduction

pydio-sync

New Python version of the Pydio synchronization client [beta]

The work is still in progress. Make sure your server is recent and properly configured. This https://pydio.com/en/docs/v8/checking-sync can help.

This is a python rewrite of the former java-based synchro client.

Server Requirements

Pydio server needs the following to be turned on:

  • RESTfull access point (see /rest.php file) and a working pair of credentials for that (rest_user/rest_password)
  • DB-based setup : serial-based will soon be deprecated anyway
  • Meta.syncable plugin applied to the workspace you want to synchronize. This will track all the changes in a specific db-table, making it very quick for the sync client to load the last changes.
  • php_rsync extension on the server to allow transferring files deltas instead of complete files contents when modified. Not yet implemented but will be back at one point.

##Client Setup

Installing

  • Make sure to install Python 2.7
  • Install pip - Make sure to have a version 1.4 or upper on Linux
  • Run: pip install git+https://github.com/pydio/pydio-sync.git

Quick start

Start main module

python -m pydio.main

If the UI is not installed, simply launched your webbrowser at http://127.0.0.1:5556/, you can now create a synchronisation task. Your data will be stored in USER_HOME/.pydio_data/

Start with non-random credentials for the web-UI:

python -m pydio.main --api_user=UsernameForTheWebInterface --api_password=PasswordForTheWebInterface

Alternative parameters

Alternatively, you can start the program with the following parameters:

  • Pass a server configuration through parameters (will be added to the config file)
python -m pydio.main 
        --server=http://yourserver 
        --directory=/path/to/local/dir 
        --workspace=workspace-alias 
        --user=rest_user 
        --password=rest_password
  • Pass a path to a json file containing the server configs:
python -m pydio.main 
        --file=/path/to/config.json

In that case, the JSON file must contain an array of "jobs configs" objects, including a type key with value "JobConfig":

[
    {
        "__type__"  : "JobConfig", // This one is important!
        "server"    : "http://mydomain.tld/path",
        "workspace" : "ws_alias_or_id",
        "directory" : "/Path/to/local/folder",
        "user"      : "user",
        "password"  : "password",
        "direction" : "bi", // can be "up", "down", "bi"
        "active"    : true
    }
]

Development Setup

Linux

sudo apt-get install python
sudo apt-get install python-dev
sudo apt-get install python-pip
sudo apt-get install libzmq3-dev

Windows

Install python 2.7. To quickly setup python start powershell and paste this script

(new-object System.Net.WebClient).DownloadFile("https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi", "$pwd\python-2.7.6.msi"); msiexec /i python-2.7.6.msi TARGETDIR=C:\Python27
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User")

Install Pip using powershell

(new-object System.Net.WebClient).DownloadFile("https://raw.github.com/pypa/pip/master/contrib/get-pip.py", "$pwd\get-pip.py"); C:\Python27\python.exe get-pip.py virtualenv

or using python itself

python -c "exec('try: from urllib2 import urlopen \nexcept: from urllib.request import urlopen');f=urlopen('https://raw.github.com/pypa/pip/master/contrib/get-pip.py').read();exec(f)"

Run sandbox.py to create virtual environment and build the app

All platforms

mkvirtualenv pydioenv
source pydioenv/bin/activate
pip install -r requirements.txt
# do some changes
python main.py

Profiling

python -m pydio.main -mp True

or

Profiling requires:

  • graphviz (packet manager: port, brew, apt, pact, yum...)
  • kernprof, gprof2dot, line_profiler (pip)

To obtain a useful callgraph with CPU usage:

python -m cProfile -o output.pstats main.py
# -n and -e followed by a number allow to set a limit for nodes and edges to be draw based on total % cpu
gprof2dot -e 0.01 -n 0.01 -f pstats output.pstats | dot -Tpng -o output001.png

Another interesting point is to add an @profile marker and use:

kernprof -v -l main.py

Reporting Issues

If you have any questions, please consider finding or posting them on our dedicated forum, once it is qualified as a bug, you can open issues.

Contributing

Please sign the Contributor License Agreement before contributing.

pydio-sync's People

Contributors

7omate avatar ad-m avatar cdujeu avatar cilyt avatar depamarco avatar jabarkarim avatar lthibault avatar mimusz avatar murbans1 avatar pablodanielrey avatar sagaru avatar wooyek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pydio-sync's Issues

Cannot download the sync client.

Seem to be getting the error "Error while parsing JSON response : JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 1344 of the JSON data" when following the link in the email to download the sync clients.

Tried both Firefox and Chrome, Windows 8.1 x64

folder (copies) creating on windows does not work.

Steps and details:

  • System windows 7

  • Create copies of a folder (out of the synchronized directory) like:

    move, move - Copie(1), move - Copie(2), move - Copie(3)

  • Copy them all into your local synchronized directory.

Expected results

The folder and all its copies have to be created on the other side.

Actuals results

only one folder is created.

Console fails when sync dir is missing

A non-existent sync dir should be created, or at least input arguments should be sanitized and missing directory should be reported on start.

Traceback (most recent call last):
  File "<string>", line 138, in <module>
  File "<string>", line 90, in main
  File "C:\tmp\pydio-sync\build\pydio\out00-PYZ.pyz\pathlib", line 1019, in resolve
  File "C:\tmp\pydio-sync\build\pydio\out00-PYZ.pyz\pathlib", line 1032, in stat
  File "C:\tmp\pydio-sync\build\pydio\out00-PYZ.pyz\pathlib", line 327, in wrapped
WindowsError: [Error 2] Nie mo┐na odnalečŠ okreťlonego pliku: 'c:\\tmp\\synced3'

Runtime Error with Microsoft C++ Runtime Library

Hi,
Right when starting pydio-sync-agent.exe I get the following error message:

sync-error-runtime
sync-error-runtime-console

OS: Win7 Prof., 64bit
Server: pydio_5.3.1_all.deb, Debian 7.5, (Linux server 2.6.32-openvz-042stab090.2-amd64 #1 SMP Wed May 21 19:32:42 MSK 2014 i686 GNU/Linux)

pydio-sync wants to write to system directories on linux

If you install it properly, then it ends up in something like
"/usr/lib64/python2.7/site-packages/pydio".

Now it's trying to modify/add stuff in "/usr/lib64/python2.7/site-packages/pydio/data", which is completely unacceptable. There are 3 locations where that is acceptable:

  • somewhere in $HOME
  • in the tmp directory of the OS
  • /var/cache (or /var/lib?)

Upload : read from file instead of memory / Handle chunked upload

We must rewrite the uploader with a different IO adapter

Read directly the data from file instead of loading its content into memory
Pydio server supports receiving files through multiple upload queries, each one sending a chunk, that way removing any upload limitation of apache or php.
The IO adapter should be able to do that, knowing the current piece of the file to send, and computing a correct global progress.

improve user documentation

It's not really clear to me what to do in rest.php and what AJXP_API_LOGIN, AJXP_API_PASSWORD and AJXP_API_USER should look like.

Missing ports_config

After removing ports_config and running the app again ports_config is not created again.

Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/maciek/pydio/pydio-sync/src/pydio/main.py", line 300, in
main()
File "/home/maciek/pydio/pydio-sync/src/pydio/main.py", line 140, in main
ports_detector.create_config_file()
File "pydio/utils/config_ports.py", line 27, in create_config_file
with open(self.store, 'w') as config_file:
IOError: [Errno 2] No such file or directory: '/home/maciek/pydio/pydio-sync/src/pydio/data/ports_config'

OSX - Pydio stop sync

Hello,

So, I just installed the client version on my OSX. In the beginning everything seams to be good. But, in some point the sync always stopped. I really don't know what is going on.

I tried to change the local folder but the problem persist.

Here the pydio.error:

java.lang.Exception: Empty Http response
at info.ajaxplorer.client.http.RestRequest.getStringContent(RestRequest.java:463)
at io.pyd.synchro.SyncJob.synchronousUP(SyncJob.java:1955)
at io.pyd.synchro.SyncJob.applyChanges(SyncJob.java:872)
at io.pyd.synchro.SyncJob.run(SyncJob.java:487)
at io.pyd.synchro.SyncJob.execute(SyncJob.java:245)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
692318 [PydioScheduler_Worker-1] ERROR root - Synchro
java.lang.Exception: Error while downloading file from server
at io.pyd.synchro.SyncJob.applyChanges(SyncJob.java:795)
at io.pyd.synchro.SyncJob.run(SyncJob.java:487)
at io.pyd.synchro.SyncJob.execute(SyncJob.java:245)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)

And the log:

2455359 [PydioScheduler_Worker-1] INFO root - Uploading 2453554 bytes
2484358 [PydioScheduler_Worker-1] INFO root - Downloading 1 bytes
2484358 [PydioScheduler_Worker-1] INFO root - Uploading 2648924 bytes
2514463 [PydioScheduler_Worker-1] INFO root - Downloading 1 bytes
2514483 [PydioScheduler_Worker-1] INFO root - Uploading 2802834 bytes

Thank you!

Encoding Problem on Mac

UTF-8 special characters are not correctly urlencoded on MacOSX and end up mangled on the server.
Test

  • Create file testé.txt on filesystem
  • Let the client sync a couple of times and see the result.
    Putting some debugging, we can see that the urlencoded version of the file path by just listing a directory content is not the same as the standard UrlEncoding excpected output. I cannot find the problem yet.

[Linux] pip install problem

pip install https://github.com/pydio/pydio-sync.git

Doesn't work under Linux:

Downloading/unpacking https://github.com/pydio/pydio-sync.git Downloading pydio-sync.git Cannot unpack file /tmp/pip-Pqv2tJ-unpack/pydio-sync.git (downloaded from /tmp/pip-WdNyLa-build, content-type: text/html; charset=utf-8); cannot detect archive format

It works when downloaded as ZIP. Should we change a path to https://github.com/pydio/pydio-sync/archive/master.zip?

Cannot log to an HTTPS server

Hi, i have an Internal Server Error when starting the Client and trying to Log in.

Server Setup:
Gentoo (current)
Apache/2.2.24 (Unix)
Pydio updated from 5.2.3 to 5.3.1 (cleared cache)

Client SetUp
Windows 8.1 Update x64 (latest version)
All Files in C:\Program Files (x86)\PydioSync
Started strat-script.bat (tried both with and without running as admin)
Added all .exe Files to the firewall, allowing all.

syncerror

Greets - Chris

Login not loading

Login page is not loading on Windows 8. Might be related to using a proxy server? Screenshot attached.

pydio_2014-09-23_08-41-56

No such file or directory: data\\configs.json

22:47:12 ERROR   1856  Dummy-5  Internal Error
Traceback (most recent call last):
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\flask\app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\flask_restful\__init__.py", line 397, in wrapper
    resp = resource(*args, **kwargs)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\flask\views.py", line 84, in view
    return self.dispatch_request(*args, **kwargs)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\flask_restful\__init__.py", line 487, in dispatch_request
    resp = meth(*args, **kwargs)
  File "pydio\ui\web_api.py", line 123, in get
    jobs = self.loader.get_jobs()
  File "pydio\ui\web_api.py", line 25, in get_jobs
    with open(self.config_file) as fp:
IOError: [Errno 2] No such file or directory: 'd:\\projekty\\pydio\\pydio-sync\\src\\pydio\\data\\configs.json'
22:47:12 INFO    1856  Dummy-5  127.0.0.1 - - [21/May/2014 22:47:12] "GET /jobs HTTP/1.1" 500 -

Missing ports_config

After removing ports_config and running the app again ports_config is not created again.

Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/maciek/pydio/pydio-sync/src/pydio/main.py", line 300, in
main()
File "/home/maciek/pydio/pydio-sync/src/pydio/main.py", line 140, in main
ports_detector.create_config_file()
File "pydio/utils/config_ports.py", line 27, in create_config_file
with open(self.store, 'w') as config_file:
IOError: [Errno 2] No such file or directory: '/home/maciek/pydio/pydio-sync/src/pydio/data/ports_config'

Unexpected Error: invalid literal for int() with base 10: '5261334937.6'

Got the following error when trying to sync for the first time.

Last sync. on 2014-08-14 00:15
Unexpected Error: invalid literal for int() with base 10: '5261334937.6'

Folder is empty on the local end as it's actually a machine I've not got any of my data on yet.

I'm afraid I haven't had time to look at it more deeply, so it's distinctly possible I did something wrong/missed a requirement when setting the server up as I did so rather hurriedly.

I'll check the server config sometime during the day just to make sure I'm not doing something silly, initially I got a HTTP 500 error when trying to setup sync, It was being caused by a 404 that was generated because I'd forgotten to install mod-Rewrite.

RuntimeError: maximum recursion depth exceeded in cmp

d:\projekty\pydio\pydio-sync\src>cmd /K ..\.pve\scripts\python -m pydio.main --file c:\Users\wooyek\.pydio.json
2014-05-21 19:45:07 DEBUG   sys.path:
        d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\pywin32-218-py2.7-win32.egg
        C:\WINDOWS\SYSTEM32\python27.zip
        d:\projekty\pydio\pydio-sync\.pve\DLLs
        d:\projekty\pydio\pydio-sync\.pve\lib
        d:\projekty\pydio\pydio-sync\.pve\lib\plat-win
        d:\projekty\pydio\pydio-sync\.pve\lib\lib-tk
        d:\projekty\pydio\pydio-sync\.pve\scripts
        d:\usr\py\Python27\Lib
        d:\usr\py\Python27\DLLs
        d:\usr\py\Python27\Lib\lib-tk
        d:\projekty\pydio\pydio-sync\.pve
        d:\projekty\pydio\pydio-sync\.pve\lib\site-packages
2014-05-21 19:45:07 DEBUG   PYTHONPATH:
.file
file keyring.backends 1
keyring.backends file
keyring.backends.file
.Gnome
Gnome keyring.backends 1
keyring.backends Gnome
keyring.backends.Gnome
.Google
Google keyring.backends 1
keyring.backends Google
keyring.backends.Google
.keyczar
keyczar keyring.backends 1
keyring.backends keyczar
keyring.backends.keyczar
.kwallet
kwallet keyring.backends 1
keyring.backends kwallet
keyring.backends.kwallet
.multi
multi keyring.backends 1
keyring.backends multi
keyring.backends.multi
.OS_X
OS_X keyring.backends 1
keyring.backends OS_X
keyring.backends.OS_X
.pyfs
pyfs keyring.backends 1
keyring.backends pyfs
keyring.backends.pyfs
.SecretService
SecretService keyring.backends 1
keyring.backends SecretService
keyring.backends.SecretService
.Windows
Windows keyring.backends 1
keyring.backends Windows
keyring.backends.Windows
2014-05-21 19:45:07 DEBUG   sys.platform: win32
2014-05-21 19:45:07 DEBUG   pydio_module: d:\projekty\pydio\pydio-sync\src\pydio
19:45:07 INFO    3676  MainThread Logging setup changed
19:45:07 DEBUG   3676  MainThread verbosity: None
19:45:07 INFO    3676  MainThread Loading config from c:\Users\wooyek\.pydio.json
19:45:07 DEBUG   3676  MainThread data: {
  "direction": "bi",
  "user_id": "syncuser",
  "monitor": true,
  "filters": {
    "excludes": [
      ".*",
      "*/.*",
      "/recycle_bin*",
      "*.pydio_dl",
      "*.DS_Store",
      ".~lock.*"
    ],
    "includes": [
      "*"
    ]
  },
  "server": "http://sandbox.ajaxplorer.info/pysync",
  "remote_folder": "",
  "workspace": "synced",
  "directory": "d:\\projekty\\pydio\\pydio-sync\\tmp\\synced",
  "_JobConfig__uuid": "c73607dcf6",
  "active": true,
  "id": "c73607dcf6"
}
19:45:07 INFO    3676  MainThread Job Started
19:45:07 DEBUG   3676  MainThread pub_socket: status/Job Started
19:45:07 INFO    3676  MainThread Scanning for changes since last application launch
19:45:07 DEBUG   8140  Thread-1 Storing reference to thread: <ContinuousDiffMerger(Thread-1, started 8140)>
19:45:07 DEBUG   344   Thread-2 Storing reference to thread: <LocalWatcher(Thread-2, started 344)>
19:45:07 DEBUG   8140  Thread-1 ContinuousDiffMerger.run loop enter: <ContinuousDiffMerger(Thread-1, started 8140)>
19:45:07 INFO    344   Thread-2 Starting permanent monitor
19:45:07 INFO    8140  Thread-1 Loading remote changes with sequence 500
19:45:07 DEBUG   8140  Thread-1 Remote sequence 500
19:45:08 INFO    8140  Thread-1 Loading local changes with sequence 42
19:45:08 DEBUG   8140  Thread-1 Local sequence 42
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 43-create-NULL-\MP3\The Doors-Intégrale\The doors_1978_An American Prayer
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 44-create-NULL-\MP3\The Doors-Intégrale\The doors_1991_Music from The Original Motion Picture
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 45-create-NULL-\MP3\The Doors-Intégrale\The doors_Apocalypse Now
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 46-create-NULL-\MP3\The definitive SIMON & GARFUNKEL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 47-create-NULL-\MP3\Velvet Underground
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 48-create-NULL-\MP3\led zepplin
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 49-create-NULL-\MP3\zzzMisc
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 51-create-NULL-\AjaXplorerIconsExport\288px-Opensource-25.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 53-create-NULL-\AjaXplorerIconsExport\Background.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 55-create-NULL-\AjaXplorerIconsExport\CR7_constelation.jpg
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 56-create-NULL-\AjaXplorerIconsExport\CamReview-1.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 59-create-NULL-\AjaXplorerIconsExport\CamReviewRENAMED.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 61-create-NULL-\AjaXplorerIconsExport\Capture écran 2014-03-26.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 62-create-NULL-\AjaXplorerIconsExport\Icon-100.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 65-create-NULL-\AjaXplorerIconsExport\Icon-120.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 66-create-NULL-\AjaXplorerIconsExport\Icon-40.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 69-create-NULL-\AjaXplorerIconsExport\Icon-72.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 70-create-NULL-\AjaXplorerIconsExport\Icon-76.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 73-create-NULL-\AjaXplorerIconsExport\Icon-80.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 74-create-NULL-\AjaXplorerIconsExport\Icon-Small-50.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 77-create-NULL-\AjaXplorerIconsExport\Icon-Small.png
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 78-create-NULL-\AjaXplorerIconsExport\[email protected]
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 79-delete-\AjaXplorerIconsExport/Background.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 80-delete-\AjaXplorerIconsExport/Icon-100.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 81-delete-\AjaXplorerIconsExport/Icon-Small.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 82-delete-\AjaXplorerIconsExport/Icon-80.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 83-delete-\AjaXplorerIconsExport/Capture écran 2014-03-26.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 84-delete-\AjaXplorerIconsExport/CR7_constelation.jpg-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 85-delete-\AjaXplorerIconsExport/Icon-72.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 86-delete-\AjaXplorerIconsExport/Icon-76.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 87-delete-\AjaXplorerIconsExport/Icon-120.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 88-delete-\AjaXplorerIconsExport/CamReview-1.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 89-delete-\AjaXplorerIconsExport/Icon-40.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 90-delete-\AjaXplorerIconsExport/288px-Opensource-25.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 91-delete-\AjaXplorerIconsExport/CamReviewRENAMED.png-NULL
19:45:08 DEBUG   8140  Thread-1 LOCAL CHANGE : 92-delete-\AjaXplorerIconsExport/Icon-Small-50.png-NULL
19:45:08 INFO    8140  Thread-1 Reducing changes
19:45:08 DEBUG   8140  Thread-1 seq, item: 43 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\The Doors-Inte\u0301grale\\The doors_1978_An American Prayer', 'mtime': 1396372596.5124066}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372596L\nL1396372596L\nL1396372596L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372596.5124066\nsS'st_mtime'\np4\nF1396372596.5124066\nsS'st_atime'\np5\nF1396372596.5124066\nstp6\nRp7\n.", 'target': u'\\MP3\\The Doors-Inte\u0301grale\\The doors_1978_An American Prayer', 'seq': 43, 'source': u'NULL', 'node_id': 42, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 44 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\The Doors-Inte\u0301grale\\The doors_1991_Music from The Original Motion Picture', 'mtime': 1396372596.6124134}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372596L\nL1396372596L\nL1396372596L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372596.6124134\nsS'st_mtime'\np4\nF1396372596.6124134\nsS'st_atime'\np5\nF1396372596.6124134\nstp6\nRp7\n.", 'target': u'\\MP3\\The Doors-Inte\u0301grale\\The doors_1991_Music from The Original Motion Picture', 'seq': 44, 'source': u'NULL', 'node_id': 43, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 45 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\The Doors-Inte\u0301grale\\The doors_Apocalypse Now', 'mtime': 1396372596.7214189}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372596L\nL1396372596L\nL1396372596L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372596.7214189\nsS'st_mtime'\np4\nF1396372596.7214189\nsS'st_atime'\np5\nF1396372596.7214189\nstp6\nRp7\n.", 'target': u'\\MP3\\The Doors-Inte\u0301grale\\The doors_Apocalypse Now', 'seq': 45, 'source': u'NULL', 'node_id': 44, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 46 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\The definitive SIMON & GARFUNKEL', 'mtime': 1396372596.8344262}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372596L\nL1396372596L\nL1396372596L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372596.8344262\nsS'st_mtime'\np4\nF1396372596.8344262\nsS'st_atime'\np5\nF1396372596.8344262\nstp6\nRp7\n.", 'target': u'\\MP3\\The definitive SIMON & GARFUNKEL', 'seq': 46, 'source': u'NULL', 'node_id': 45, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 47 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\Velvet Underground', 'mtime': 1396372596.9764335}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372596L\nL1396372596L\nL1396372596L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372596.9764335\nsS'st_mtime'\np4\nF1396372596.9764335\nsS'st_atime'\np5\nF1396372596.9764335\nstp6\nRp7\n.", 'target': u'\\MP3\\Velvet Underground', 'seq': 47, 'source': u'NULL', 'node_id': 46, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 48 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\led zepplin', 'mtime': 1396372597.1214416}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372597L\nL1396372597L\nL1396372597L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372597.1214416\nsS'st_mtime'\np4\nF1396372597.1214416\nsS'st_atime'\np5\nF1396372597.1214416\nstp6\nRp7\n.", 'target': u'\\MP3\\led zepplin', 'seq': 48, 'source': u'NULL', 'node_id': 47, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 49 {'node': {'bytesize': 0, 'md5': u'directory', 'node_path': u'\\MP3\\zzzMisc', 'mtime': 1396372597.2654507}, 'stat_result': u"cos\n_make_stat_result\np0\n((I16895\nL0L\nI0\nI0\nI0\nI0\nL0L\nL1396372597L\nL1396372597L\nL1396372597L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372597.2654507\nsS'st_mtime'\np4\nF1396372597.2654507\nsS'st_atime'\np5\nF1396372597.2654507\nstp6\nRp7\n.", 'target': u'\\MP3\\zzzMisc', 'seq': 49, 'source': u'NULL', 'node_id': 48, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 51 {'node': {'bytesize': 14418, 'md5': u'f601921960dc4c6c3be3a069b732d1e7', 'node_path': u'\\AjaXplorerIconsExport\\288px-Opensource-25.png', 'mtime': 1396372616.5135481}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL14418L\nL1396372616L\nL1396372616L\nL1396372616L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372616.2675345\nsS'st_mtime'\np4\nF1396372616.5135481\nsS'st_atime'\np5\nF1396372616.2675345\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\288px-Opensource-25.png', 'seq': 51, 'source': u'NULL', 'node_id': 50, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 53 {'node': {'bytesize': 12465, 'md5': u'5a871a274dea77063f26cc11e939757b', 'node_path': u'\\AjaXplorerIconsExport\\Background.png', 'mtime': 1396372617.2675917}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL12465L\nL1396372616L\nL1396372617L\nL1396372616L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372616.964574\nsS'st_mtime'\np4\nF1396372617.2675917\nsS'st_atime'\np5\nF1396372616.964574\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Background.png', 'seq': 53, 'source': u'NULL', 'node_id': 52, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 55 {'node': {'bytesize': 174725, 'md5': u'8000e05daeab140b9e649557dd484ae5', 'node_path': u'\\AjaXplorerIconsExport\\CR7_constelation.jpg', 'mtime': 1396372618.6946735}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL174725L\nL1396372618L\nL1396372618L\nL1396372618L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372618.1036408\nsS'st_mtime'\np4\nF1396372618.6946735\nsS'st_atime'\np5\nF1396372618.1036408\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\CR7_constelation.jpg', 'seq': 55, 'source': u'NULL', 'node_id': 54, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 56 {'node': {'bytesize': 24686, 'md5': u'c77ad46f3131c6c98753cd0369034b01', 'node_path': u'\\AjaXplorerIconsExport\\CamReview-1.png', 'mtime': 1396372619.297707}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL24686L\nL1396372619L\nL1396372619L\nL1396372619L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372619.0336921\nsS'st_mtime'\np4\nF1396372619.297707\nsS'st_atime'\np5\nF1396372619.0336921\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\CamReview-1.png', 'seq': 56, 'source': u'NULL', 'node_id': 55, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 59 {'node': {'bytesize': 24686, 'md5': u'c77ad46f3131c6c98753cd0369034b01', 'node_path': u'\\AjaXplorerIconsExport\\CamReviewRENAMED.png', 'mtime': 1396372619.8957417}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL24686L\nL1396372619L\nL1396372619L\nL1396372619L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372619.6177256\nsS'st_mtime'\np4\nF1396372619.8957417\nsS'st_atime'\np5\nF1396372619.6177256\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\CamReviewRENAMED.png', 'seq': 59, 'source': u'NULL', 'node_id': 58, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 61 {'node': {'bytesize': 100699, 'md5': u'b77cfaf2e07aa663ef8f5069a7ab87dd', 'node_path': u'\\AjaXplorerIconsExport\\Capture e\u0301cran 2014-03-26.png', 'mtime': 1396372621.3378239}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL100699L\nL1396372620L\nL1396372621L\nL1396372620L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372620.5087764\nsS'st_mtime'\np4\nF1396372621.3378239\nsS'st_atime'\np5\nF1396372620.5087764\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Capture e\u0301cran 2014-03-26.png', 'seq': 61, 'source': u'NULL', 'node_id': 60, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 62 {'node': {'bytesize': 1453, 'md5': u'2f66ff47ccd6c665869fdb82aa52d5a6', 'node_path': u'\\AjaXplorerIconsExport\\Icon-100.png', 'mtime': 1396372621.8718543}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL1453L\nL1396372621L\nL1396372621L\nL1396372621L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372621.6558428\nsS'st_mtime'\np4\nF1396372621.8718543\nsS'st_atime'\np5\nF1396372621.6558428\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-100.png', 'seq': 62, 'source': u'NULL', 'node_id': 61, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 65 {'node': {'bytesize': 1493, 'md5': u'0b487332eacd7c56a38690645549b10d', 'node_path': u'\\AjaXplorerIconsExport\\Icon-120.png', 'mtime': 1396372622.4098847}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL1493L\nL1396372622L\nL1396372622L\nL1396372622L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372622.1958728\nsS'st_mtime'\np4\nF1396372622.4098847\nsS'st_atime'\np5\nF1396372622.1958728\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-120.png', 'seq': 65, 'source': u'NULL', 'node_id': 64, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 66 {'node': {'bytesize': 753, 'md5': u'81510ac43d11c407643ec2bfcabbdbff', 'node_path': u'\\AjaXplorerIconsExport\\Icon-40.png', 'mtime': 1396372622.9379146}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL753L\nL1396372622L\nL1396372622L\nL1396372622L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372622.7329032\nsS'st_mtime'\np4\nF1396372622.9379146\nsS'st_atime'\np5\nF1396372622.7329032\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-40.png', 'seq': 66, 'source': u'NULL', 'node_id': 65, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 69 {'node': {'bytesize': 983, 'md5': u'dd61297f374b185d13e48597858eef46', 'node_path': u'\\AjaXplorerIconsExport\\Icon-72.png', 'mtime': 1396372623.4269426}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL983L\nL1396372623L\nL1396372623L\nL1396372623L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372623.2369318\nsS'st_mtime'\np4\nF1396372623.4269426\nsS'st_atime'\np5\nF1396372623.2369318\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-72.png', 'seq': 69, 'source': u'NULL', 'node_id': 68, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 70 {'node': {'bytesize': 969, 'md5': u'71b801845426b3abf55489d60fedf5ad', 'node_path': u'\\AjaXplorerIconsExport\\Icon-76.png', 'mtime': 1396372623.9959755}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL969L\nL1396372623L\nL1396372623L\nL1396372623L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372623.7769628\nsS'st_mtime'\np4\nF1396372623.9959755\nsS'st_atime'\np5\nF1396372623.7769628\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-76.png', 'seq': 70, 'source': u'NULL', 'node_id': 69, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 73 {'node': {'bytesize': 1228, 'md5': u'35a7106c1a2e712738dcf65caf18cba7', 'node_path': u'\\AjaXplorerIconsExport\\Icon-80.png', 'mtime': 1396372625.2110448}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL1228L\nL1396372624L\nL1396372625L\nL1396372624L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372624.9890316\nsS'st_mtime'\np4\nF1396372625.2110448\nsS'st_atime'\np5\nF1396372624.9890316\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-80.png', 'seq': 73, 'source': u'NULL', 'node_id': 72, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 74 {'node': {'bytesize': 829, 'md5': u'04e043e556c47254a89e17867602119a', 'node_path': u'\\AjaXplorerIconsExport\\Icon-Small-50.png', 'mtime': 1396372625.7650757}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL829L\nL1396372625L\nL1396372625L\nL1396372625L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372625.5370631\nsS'st_mtime'\np4\nF1396372625.7650757\nsS'st_atime'\np5\nF1396372625.5370631\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-Small-50.png', 'seq': 74, 'source': u'NULL', 'node_id': 73, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 77 {'node': {'bytesize': 442, 'md5': u'f9340187a2ab992fa76cd7dc06d9a6f8', 'node_path': u'\\AjaXplorerIconsExport\\Icon-Small.png', 'mtime': 1396372626.3151076}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL442L\nL1396372626L\nL1396372626L\nL1396372626L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372626.1200964\nsS'st_mtime'\np4\nF1396372626.3151076\nsS'st_atime'\np5\nF1396372626.1200964\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\Icon-Small.png', 'seq': 77, 'source': u'NULL', 'node_id': 76, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 78 {'node': {'bytesize': 962, 'md5': u'40a3c541839fd4238c2f74e7388435a0', 'node_path': u'\\AjaXplorerIconsExport\\[email protected]', 'mtime': 1396372626.8571386}, 'stat_result': u"cos\n_make_stat_result\np0\n((I33206\nL0L\nI0\nI0\nI0\nI0\nL962L\nL1396372626L\nL1396372626L\nL1396372626L\ntp1\n(dp2\nS'st_ctime'\np3\nF1396372626.6441267\nsS'st_mtime'\np4\nF1396372626.8571386\nsS'st_atime'\np5\nF1396372626.6441267\nstp6\nRp7\n.", 'target': u'\\AjaXplorerIconsExport\\[email protected]', 'seq': 78, 'source': u'NULL', 'node_id': 77, 'location': 'local', 'type': u'create'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 79 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 79, 'source': u'\\AjaXplorerIconsExport/Background.png', 'node_id': 51, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 80 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 80, 'source': u'\\AjaXplorerIconsExport/Icon-100.png', 'node_id': 62, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 81 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 81, 'source': u'\\AjaXplorerIconsExport/Icon-Small.png', 'node_id': 75, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 82 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 82, 'source': u'\\AjaXplorerIconsExport/Icon-80.png', 'node_id': 71, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 83 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 83, 'source': u'\\AjaXplorerIconsExport/Capture e\u0301cran 2014-03-26.png', 'node_id': 59, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 84 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 84, 'source': u'\\AjaXplorerIconsExport/CR7_constelation.jpg', 'node_id': 53, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 85 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 85, 'source': u'\\AjaXplorerIconsExport/Icon-72.png', 'node_id': 67, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 86 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 86, 'source': u'\\AjaXplorerIconsExport/Icon-76.png', 'node_id': 70, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 87 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 87, 'source': u'\\AjaXplorerIconsExport/Icon-120.png', 'node_id': 63, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 88 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 88, 'source': u'\\AjaXplorerIconsExport/CamReview-1.png', 'node_id': 56, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 89 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 89, 'source': u'\\AjaXplorerIconsExport/Icon-40.png', 'node_id': 66, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 90 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 90, 'source': u'\\AjaXplorerIconsExport/288px-Opensource-25.png', 'node_id': 49, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 91 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 91, 'source': u'\\AjaXplorerIconsExport/CamReviewRENAMED.png', 'node_id': 57, 'location': 'local', 'type': u'delete'}
19:45:08 DEBUG   8140  Thread-1 seq, item: 92 {'node': {'bytesize': None, 'md5': None, 'node_path': None, 'mtime': None}, 'stat_result': None, 'target': u'NULL', 'seq': 92, 'source': u'\\AjaXplorerIconsExport/Icon-Small-50.png', 'node_id': 74, 'location': 'local', 'type': u'delete'}
19:45:12 DEBUG   3676  MainThread thread: <LocalWatcher(Thread-2, started 344)>
19:45:12 DEBUG   3676  MainThread thread: <ContinuousDiffMerger(Thread-1, started 8140)>
19:45:12 DEBUG   3676  MainThread thread: <_MainThread(MainThread, started 3676)>
19:45:12 DEBUG   3676  MainThread thread: <WindowsApiObserver(Thread-3, started daemon 5368)>
19:45:12 DEBUG   3676  MainThread thread: <WindowsApiEmitter(Thread-4, started daemon 3356)>
19:45:12 DEBUG   3676  MainThread Waiting for exit
Exception in thread Thread-1:
Traceback (most recent call last):
  File "d:\usr\py\Python27\Lib\threading.py", line 808, in __bootstrap_inner
    self.run()
  File "pydio\job\__init__.py", line 79, in wrapper
    thread_run_function(*args, **kwds)
  File "pydio\job\continous_merger.py", line 164, in run
    changes = self.reduce_changes(local_changes, remote_changes, conflicts)
  File "pydio\job\continous_merger.py", line 454, in reduce_changes
    remote_stats = self.sdk.bulk_stat(test_stats, with_hash=True)
  File "pydio\sdk\remote.py", line 183, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "pydio\sdk\remote.py", line 183, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "pydio\sdk\remote.py", line 183, in bulk_stat
  File "pydio\sdk\remote.py", line 112, in perform_request
    resp = self.perform_with_tokens(tokens[0], tokens[1], url, type, data, files, stream, with_progress)
  File "pydio\sdk\remote.py", line 94, in perform_with_tokens
    resp = requests.post(url=url, data=data, stream=stream)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\api.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\api.py", line 43, in request
    session = sessions.Session()
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\sessions.py", line 243, in __init__
    self.mount('https://', HTTPAdapter())
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\adapters.py", line 86, in __init__
    self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\adapters.py", line 119, in init_poolmanager
    block=block)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\packages\urllib3\poolmanager.py", line 69, in __init__
    dispose_func=lambda p: p.close())
  File "d:\projekty\pydio\pydio-sync\.pve\lib\site-packages\requests\packages\urllib3\_collections.py", line 51, in __init__
    self._container = self.ContainerCls()
  File "d:\usr\py\Python27\Lib\collections.py", line 52, in __init__
    self.__update(*args, **kwds)
  File "d:\projekty\pydio\pydio-sync\.pve\lib\_abcoll.py", line 540, in update
    if isinstance(other, Mapping):
  File "d:\projekty\pydio\pydio-sync\.pve\lib\abc.py", line 141, in __instancecheck__
    subtype in cls._abc_negative_cache):
  File "d:\projekty\pydio\pydio-sync\.pve\lib\_weakrefset.py", line 73, in __contains__
    return wr in self.data
RuntimeError: maximum recursion depth exceeded in cmp

AttributeError: 'module' object has no attribute 'packages'

Did I broke large file sync?

21:17:59 ERROR   140189218248448 Thread-2 'module' object has no attribute 'packages'
Traceback (most recent call last):
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/job/continous_merger.py", line 407, in processor_callback
    proc.process_change()
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/job/change_processor.py", line 74, in process_change
    self.process_upload(item['node']['node_path'], item)
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/job/change_processor.py", line 193, in process_upload
    max_upload_size=max_upload_size)
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/sdk/remote.py", line 484, in upload
    self.perform_request(url=url, type='post', data=data, files=files, with_progress=callback_dict)
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/sdk/remote.py", line 197, in perform_request
    resp = self.perform_with_tokens(tokens[0], tokens[1], url, type, data, files, stream, with_progress)
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/sdk/remote.py", line 165, in perform_with_tokens
    max_size=self.upload_max_size)
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/sdk/utils.py", line 179, in upload_file_with_progress
    (header_body, close_body, content_type) = encode_multiparts(fields)
  File "/work/pydio-sync-builder/pydio-sync/src/pydio/sdk/utils.py", line 131, in encode_multiparts
    (data, content_type) = requests.packages.urllib3.filepost.encode_multipart_formdata(fields)
AttributeError: 'module' object has no attribute 'packages'

synchronization impossible

hello,

a lot of congratulations for this very nice app !

I just installed on my my server (ubuntu 12.04.4 / Apache/2.2.22 (Ubuntu) / php 5.3.10-1ubuntu3.13) the last version of pydio 5.3.2

I also installed on my macbook air (10.9.4) the pydio Desktop Sync (v0.9 alpha) ... and :
-> I can connect to http://synctest.pydio.com/
-> I can connect to my server with Desktop Sync even if I can connect with Safari. I've copied the exact URL in Desktop Sync.

capture d ecran 2014-08-10 a 20 21

What can I do ?

Denis

Error when 401 thrown

Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "pydio/job/continous_merger.py", line 169, in run
self.process_change(change)
File "pydio/job/continous_merger.py", line 367, in process_change
self.process_UPLOAD(item['node']['node_path'])
File "pydio/job/continous_merger.py", line 336, in process_UPLOAD
self.sdk.upload(self.basepath+path, self.system.stat(path), path)
File "pydio/sdk/remote.py", line 234, in upload
resp = self.perform_request(url=url, type='post', data=data, files=files, with_progress=True)
File "pydio/sdk/remote.py", line 112, in perform_request
resp = self.perform_with_tokens(tokens[0], tokens[1], url, type, data, files, stream, with_progress)
File "pydio/sdk/remote.py", line 98, in perform_with_tokens
if resp.status_code == 401:
UnboundLocalError: local variable 'resp' referenced before assignment

[Linux] Wrong JSON data - why & handle an exception

2014-03-26 22:45:36 - LOCAL CHANGE : 61-create-NULL-recycle_bin/README.md 2014-03-26 22:45:36 - LOCAL CHANGE : 63-create-NULL-recycle_bin/pydio.sqlite 2014-03-26 22:45:36 - Reducing changes Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "pydio/job/continous_merger.py", line 124, in run changes = self.reduce_changes(local_changes, remote_changes, conflicts) File "pydio/job/continous_merger.py", line 386, in reduce_changes remote_stats = self.sdk.bulk_stat(test_stats, with_hash=True) File "pydio/sdk/remote.py", line 78, in bulk_stat data = json.loads(resp.content) File "/usr/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 383, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded

Console does not close on Ctrl-C

Running:

python -m pydio.main -s http://foo.bar -d c:\foo\bar -w workspace -u user -p pass

After a while (when sync threads start) process does not allow to close it'self from console, have to be killed via process manager.

mportError: DLL load failed _cffi_backend.pyd

I have broke the build with thread changes, and have been battling this for some time. Have anyone seen this before?

2014-05-22 18:04:03 DEBUG   PYTHONPATH:
_socket
C:\Users\wooyek\AppData\Local\Temp\_MEI22282\_socket.pyd
_ssl
C:\Users\wooyek\AppData\Local\Temp\_MEI22282\_ssl.pyd
_ctypes
C:\Users\wooyek\AppData\Local\Temp\_MEI22282\_ctypes.pyd
zmq.backend.cython.constants
C:\Users\wooyek\AppData\Local\Temp\_MEI22282\zmq.backend.cython.constants.pyd
zmq.backend.cython.error
C:\Users\wooyek\AppData\Local\Temp\_MEI22282\zmq.backend.cython.error.pyd
_cffi_backend
C:\Users\wooyek\AppData\Local\Temp\_MEI22282\_cffi_backend.pyd
Traceback (most recent call last):
  File "<string>", line 40, in <module>
  File "D:\projekty\pydio\pydio-sync-builder\.distve\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "d:\projekty\pydio\pydio-sync-builder\build\pydio-sync-agent\out00-PYZ.pyz\zmq", line 60, in <module>
  File "D:\projekty\pydio\pydio-sync-builder\.distve\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "d:\projekty\pydio\pydio-sync-builder\build\pydio-sync-agent\out00-PYZ.pyz\zmq.backend", line 45, in <module>
  File "d:\projekty\pydio\pydio-sync-builder\build\pydio-sync-agent\out00-PYZ.pyz\zmq.backend", line 38, in <module>
  File "d:\projekty\pydio\pydio-sync-builder\build\pydio-sync-agent\out00-PYZ.pyz\zmq.backend.select", line 32, in select_backend
  File "D:\projekty\pydio\pydio-sync-builder\.distve\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "d:\projekty\pydio\pydio-sync-builder\build\pydio-sync-agent\out00-PYZ.pyz\zmq.backend.cython", line 26, in <module>
  File "D:\projekty\pydio\pydio-sync-builder\.distve\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 411, in load_module
    module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
ImportError: DLL load failed: Nie mo┐na odnalečŠ okreťlonego modu│u.

Sync stopped on connection problem

After 10 minutes process appears to do nothing, not sure if it's by design.

09:04:14 Reducing changes
Exception in thread Thread-1:
Traceback (most recent call last):
  File "d:\usr\py\Python27\Lib\threading.py", line 808, in __bootstrap_inner
    self.run()
  File "D:\projekty\pydio\pydio-sync\src\pydio\job\continous_merger.py", line 153, in run
    changes = self.reduce_changes(local_changes, remote_changes, conflicts)
  File "D:\projekty\pydio\pydio-sync\src\pydio\job\continous_merger.py", line 432, in reduce_changes
    remote_stats = self.sdk.bulk_stat(test_stats, with_hash=True)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 106, in bulk_stat
    self.bulk_stat(pathes, result=replaced, with_hash=with_hash)
  File "D:\projekty\pydio\pydio-sync\src\pydio\sdk\remote.py", line 81, in bulk_stat
    resp = requests.post(url, data=data, auth=self.auth)
  File "D:\projekty\pydio\pydio-sync\.ve\lib\site-packages\requests\api.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "D:\projekty\pydio\pydio-sync\.ve\lib\site-packages\requests\api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "D:\projekty\pydio\pydio-sync\.ve\lib\site-packages\requests\sessions.py", line 383, in request
    resp = self.send(prep, **send_kwargs)
  File "D:\projekty\pydio\pydio-sync\.ve\lib\site-packages\requests\sessions.py", line 486, in send
    r = adapter.send(request, **kwargs)
  File "D:\projekty\pydio\pydio-sync\.ve\lib\site-packages\requests\adapters.py", line 378, in send
    raise ConnectionError(e)
ConnectionError: HTTPConnectionPool(host='<host>', port=80): Max retries exceeded with url: /pysync/api/synced/stat_hash/AjaXplorerIconsExport/CamReviewRENAMED.png (Caused by <class 'socket.error'>: [Errno 10060] Prˇba po│╣czenia nie powiod│a siŕ, poniewa┐ po│╣czona strona nie odpowiedzia│a poprawnie po ustalonym okresie czasu lub utworzone po│╣czenie nie powiod│o siŕ, poniewa┐ po│╣czony host nie odpowiedzia)

Slow computer after latest install

I installed the latest version of the Pydio Sync and ran it yesterday. Today my computer felt suddenly slow and unresponsive. Tried a reboot, but the computer didn't respond.

Only after hitting ALT + Cmd + Esc i noticed the Pydio Sync task was not responding. Force quitting then allowed the computer to restart and now it's running fine (with the Pydio not running).

Just an FYI.

Running OSX Mavericks 10.9.2, 2.6 GHz Interl Core i7 MacBook Pro, 16GB 1600 Mhz DDR3.
Syncing a very small folder against your test server.

Mac sync client - nginx pydio server - not working

Hi Charles,

I can't manage to get pydio-sync working on my mac.
client setup :
Mac OS X Mavericks (last updates OK)
Server setup :
Debian wheezy up to date
nginx & php5-fpm
fresh install from tarball pydio 5.3.2
https vhost only with self-signed certificate

when I try to connect,
I got this red panel telling me :
Error while trying to connect to https://pydio.mydomain.com (Internal Server Error):
Did you enter the correct login/password?
If you are using https, is your certificate self-signed? If yes, check "Trust SSL certificate"

In the nginx log I can see only this line :
<my_ip> - <my_user> [23/Aug/2014:14:11:44 +0200] "GET /api/pydio/state/user/repositories?format=json HTTP/1.1" 200 78 "-" "python-requests/2.2.1 CPython/2.7.2 Darwin/13.3.0"

I'm positively sure that the login / passwd are correct and the SSL checkbox is checked :)

I can provide the log of the pydio-sync-agent if you wish, but I'd rather send it directly to you...

You can contact me If you need/want more details, I'd be glad to help.

Cheers.

No page found

MacBook Pro 2014 running latest OSX, 10.9.2
Using the test server

With the application running in the background, i hit the "Open Pydio" button and the windows comes up, looking like a webpage saying "No page found".
(status was Idle (last event: Remote and Local are synchronized)

Killing the application completely using stop-sync-agent.command and then using start-sync-agent.command again was the only way i could fix it. Runs like normal now, but i have no idea when or why it started doing it.

Use tempfile module or relative path for job_data_path

Running this on windows:

python pydio.py -s http://foo.bar -w synced -u foo -p bar -d d:\projekty\pydio\pydio-sync\py\tmp\

Results in an folder creation error

Traceback (most recent call last):
  File "pydio.py", line 72, in <module>
    os.mkdir(job_data_path)
WindowsError: [Error 3] System nie mo┐e odnalečŠ okreťlonej ťcie┐ki: u'data/foobar-synced'     

Client stating that uploading is at 120%

The client sometimes miscalculates the upload speed and time and states that downloads are at for example; 102%, 100.2%, 120%, 150%. This is not a functional issues just a minor glitch.

I would recommend capping the percentages to 100% just to prevent this.

I expect it is not yet fast enough to calculate the correct upload time/speed when using Fibre from at least 100Mbit. It occurs less at slower connections.

win x64 version not functional after successful setup

After successful setup (no errors), the client is not launched.
Even a manual attempt doesn't launch the app. The pydio symbol doesn't appear in the taskbar.
32bit version works fine.
It seems to me, that the setup procedure for the x64 version of the sync client is not complete.

system: Win7 x64

Missing ports_config

After removing ports_config and running the app again ports_config is not created again.

Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/maciek/pydio/pydio-sync/src/pydio/main.py", line 300, in
main()
File "/home/maciek/pydio/pydio-sync/src/pydio/main.py", line 140, in main
ports_detector.create_config_file()
File "pydio/utils/config_ports.py", line 27, in create_config_file
with open(self.store, 'w') as config_file:
IOError: [Errno 2] No such file or directory: '/home/maciek/pydio/pydio-sync/src/pydio/data/ports_config'

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.