Log:
2019/11/22 14:37:27 NOTICE: webdav root 'tmp/test2': --checksum is in use but the source and destination have no hashes in common; falling back to --size-only
Nextcloud seems not be able to calc. MD5, however, SHA-1 is OK ("rclone hashsum SHA-1 NC:/tmp/test2" shows hash vals).
So, would you show me how to specify hash method (ie. MD5 or SHA-1) to --checksum flag?
Hmm I think that must be a bug - the source and dest do have hashes in common, it is just that it all the MD5 hashes are blank...
So rclone thinks nextcloud support md5 and sha1, however all the md5 hashes will read as "".
Does nextcloud actually support md5 at all?
There isn't a way currently to specify which hash you use. Rclone chooses one for you. I could put a flag in for that to say which checksum you want if there is a choice (or maybe a preferred list).
If a remote supports more than one and rclone gets a blank for one of them it could try the next hash along. This would work but be quite inefficient.
I could implement a flag to say which checksums the webdav remote does support.
But maybe nextcloud really only does support sha1? Certainly that is what I see on my nexcloud instance.
Although I am not sure all Nextcloud instances has the same feature, my server returns only ""s to "rclone hashsum MD5".
Does nextcloud actually support md5 at all?
So, I can answer only for my server, it's "No".
I could put a flag in for that to say which checksum you want if there is a choice (or maybe a preferred list).
Yea, it would be very useful for me.
But maybe nextcloud really only does support sha1? Certainly that is what I see on my nexcloud instance.
Sorry, I am completely not sure about this. But, I suspect that the "server side encryption" feature, which is enabled on my server, may have something to do with it.
After modified a file locally and "rclone copy -c", "no hashes" warning is shown and some files'(not the modified one) MD5 and SHA-1 will not be obtained.
$ ./tmp/rclone copy -v -c test2 NC:/tmp/test2
2019/11/25 05:20:21 INFO : webdav root 'tmp/test2': Waiting for checks to finish
2019/11/25 05:20:21 NOTICE: webdav root 'tmp/test2': --checksum is in use but the source and destination have no hashes in common; falling back to --size-only
2019/11/25 05:20:21 INFO : webdav root 'tmp/test2': Waiting for transfers to finish
2019/11/25 05:20:25 INFO : test.txt: Copied (replaced existing)
2019/11/25 05:20:25 INFO :
Transferred: 47 / 47 Bytes, 100%, 10 Bytes/s, ETA 0s
Checks: 0 / 5, 100%
Transferred: 1 / 1, 100%
Elapsed time: 4.5s
And, as I have misunderstood the hash feature, I would like to know:
For WebDAV server, hash values are calculated by rclone (not by the server), and sent to the server. Then, I wonder if a file is modified externally, update chaeck with hash(checksum) will fail: is it right?
I think the best thing to to might be to make rclone only support SHA1 on nextcloud. This will be backwards compatiible with old versions of rclone and will fix your problem.
After copied files to Nextcloud, all files' SHA-1 hashes are displayed with "rclone hashsum SHA-1 NC:remote-dir",
and, changed a file locally then "rclone copy -v -c local-dir NC:remote-dir" succeeded without any warnings on --checksum.