I’m using Syncthing to back up a 2TB media server. I recently encountered the need to put each video file into its own folder (e.g. “Movie.mkv” into a “Movie” folder). I tried doing this a few ways…
Trial 1
On Node A, create folder Movie
Move Movie.mkv into Movie
Result: Node B deletes local copy of Movie and redownloads Movie.mkv from Node A
Trial 2
On Node A, create folder Movie
Wait for sync (this took minutes, but that was fine)
Move Movie.mkv into Movie
Result: Node B moves the local copy correctly
Based on Trial 2, I tried about 20 movie files at once. MISTAKE! For some reason, I got the results of Trial 1 and am now redownloading over 100GB.
There is no guarantee that data will be reused when things are moved between folders, where “folder” is the syncthing concept that is shared with devices and so on. When files are moved between directories within the same folder, data reuse should always happen.
If you want to reorganize and ensure no unnecessary data is transferred, a slow but sure way is to copy, rescan, let sync, then delete.
There sadly is no guarantee that stuff will be reused. Syncthing sends changes as soon as it discovers them, so it’s perfectly possible that it will discover that Movie.mkv is missing, transmit that as a delete, get that handled at the other end, and then discover Movie.mkv in a different place.
If you have the space on the remote node…
You can set versioning to keep a single copy. Then add the stversion folder to the node as a new share without sharing it to any other devices.
When you move your files ST will do it’s best to move them rather than delete and re-download. If it does delete rather than move, it can rebuild the file from the on disk copy without needing to download anything.