Whoa! This is an extremely interesting result!
In my tests duplicacy was much faster, so that I did not include the rclone results in the post. (But only tested on 4 threads, and egress from Amazon is quite expensive, I’ve already spent $20 :)).
It would be interesting to understand what does duplicacy do differently than the rclone.
And to confirm, you have created native storj remote in recline, not S3, correct?
I’m wondering when you specified 20 transfers with rclone and you only have 10 files it started downloaded each file in two threads - from the beginning and from the middle — or did it simply use 10 threads.
Either way, this is a massive improvement.
But I think we are very close. It is possible that the rclone is using newer version of uplink (storj api library) that has a bunch of optimizations while duplicacy is using an older and slower one.
Actually, rclone can be used to serve any remote as few others remotes, rclone serve
You could technically use rclone to serve STORJ via its native remove over SFTP and have duplicacy connect to local rclone instance via SFTP. I’m not saying that this is what you should do permanently, just pointing out a possibility.
Actually it would be a good experiment. If duplicacy → rclone serve → storj is fast but duplicacy → storj is slow ==> it’s definitely old storj library in duplicacy.
It’s hard to imagine anything else. Ultimately, both apps just fetch files from the interwebs.
Alternatively, i can try updating the storj dependency in duplicacy source and building a binary for windows for you, but you should not trust binaries from random people on the internet, so maybe it’s a non-starter.