--> Problem : the --exclude="*" is ignored, the dry-run command is ignored,.. all --xxxxx flags are ignored, and the transfer start from srcFs to dstFS
Whereas without "rc" mode, it works and all --xxxxxx flags are well interpreted
#> rclone copy --exclude "*" --log-file="/tmp/logs/job_copy_photo.log" -vv --exclude-if-present="__ignore" "/volume1/photo" "pcloud_test:photo" --rc-user="test" --rc-pass="test" --dry-run
Note that in this example all files are ignored due to --exclude "*". It's just for example to simplify the description of bug.
A log from the command with the -vv flag (eg output from rclone -vv copy /tmp remote:tmp)
This is the logs of rc sync/copy command :
2019/09/11 23:25:49 DEBUG : rclone: Version "v1.49.1" starting with parameters ["rclone" "rc" "sync/copy" "--exclude=" "--log-file=/tmp/logs/job_copy_photo.log" "-vv" "--exclude-if-present=__ignore" "--skip-links" "srcFs=/volume1/photo" "dstFs=pcloud_test:photo" "--rc-user=test" "--rc-pass=test" "_async=true" "--dry-run"]
2019/09/11 23:25:49 DEBUG : 5 go routines active
2019/09/11 23:25:49 DEBUG : rclone: Version "v1.49.1" finishing with parameters ["rclone" "rc" "sync/copy" "--exclude=" "--log-file=/tmp/logs/job_copy_photo.log" "-vv" "--exclude-if-present=__ignore" "--skip-links" "srcFs=/volume1/photo" "dstFs=pcloud_test:photo" "--rc-user=test" "--rc-pass=test" "_async=true" "--dry-run"]
2019/09/12 00:39:08 Failed to rc: Failed to read rc response: 500 Internal Server Error: {
"error": "failed to write options from block "filter": Reshape failed to Unmarshal: json: cannot unmarshal string into Go struct field Opt.ExcludeRule of type string",
"input": {
"filter": {
"ExcludeRule": "*"
}
},
"path": "options/set",
"status": 500
}
Question 1 : is it the right order to execute the command ?
"sync/copy" and next "options/set"
or "options/set" and next "sync/copy" ?
Question 2 : I don't know what is the right syntax
Question 3 : If i have several jobs which are running, how can I have different options for each jobs ?
I think that will work for some options, but the filter options is a global so if you change it while another sync is running then it will change for that sync too.
This is fixable, it just shows rclone's heritage as a command line program rather than an API driven program
Well, I just checked it before your response and I confirm
My example :
1. define "option/set" for the job 1 (exclude nothing in filter)
2. execute job 1 with sync/copy (running in background)
3. sleep 6
4. define "option/set" for the job 2 (with filter exclude everything *)
5. execute job 2 with sync/copy (running in background)
Result :
the job 2 finished very quickly
the job 1 was still running but after 1 minute (approximately) the job 1 stopped
(I suggest the job 1 is not stopped directly beacuse of check caching or something like that)
As a result, if i well understood, I have two choice :
execute my jobs without a remote control and just with "rclone copy"
--> disavantage : I cannot have information on my running jobs (with job/status)
Or wait for a fix (i don't know what is the delay)