I have a rather unusual setup. I work for a scientific institution, we are currently preparing to switch to Syncthing for some file transfer processes.
We have 16 total devices that will be part of the final Syncthing network: 1 NAS and 15 Raspberry Pis. The 15 Raspberry Pis are cameras that are mounted in a difficult to reach position. They take photos at a regular interval and regularly delete old cached photos. I want the photos to sync from the Pis to the NAS, I have set them all to send only mode, and the NAS to receive only, which is good. However, I want to ensure that the photos that get cleaned up on the Pis do not then propagate and delete on the NAS as well, nor do I want syncthing to delete any photos that are already present on the NAS (but not on the Pis).
I see that there is an ignoreDelete option for folders, and this option seems to be what I want, but there are a lot of warnings and the instructions are not entirely clear on a couple things.
Is this the correct option for my use case (i.e. does it prevent deletes from propagating in the way that I want it do?)
Does this option prevent initial sync mismatch deletes? (i.e. When the devices are first connected, will enabling this option prevent syncthing from deleting existing files on my NAS?)
Is there anything else I should be aware of?
Notes:
Disabling deletes outside of Syncthing is not possible in my environment, as (unfortunately) the NAS runs QNAP and all applications on QNAP are run as root.
Each Pi has it’s own separate folder on the NAS.
The NAS is expected to be running 24/7 but the Pis are regularly rebooted.
Please let me know if I can provide any further details about my setup.
It does sound like it should do the job. We don’t recommend it here though, so if you do decide to enable the setting, you’re on your own basically. I would strongly recommend doing some testing with temporary files first.
What do you mean specifically? If you connect devices for the first time and share a folder between them, there is no deletion at all. What happens is that Syncthing merges the folder contents.
My setup at work isn’t exactly the same (no Raspberry Pi boxes), but I’m also using Syncthing to transfer camera images between a NAS and multiple remote boxes.
Instead of using Syncthing’s ignoreDelete setting, a less complicated and safer approach might be to set each Syncthing folder for the RPi boxes on the QNAP to “Send & Receive”, then use QNAP’s Qfiling feature to automatically move files out of the Syncthing folders for long term storage: https://qnap.com/en/how-to/tutorial/article/how-to-use-qfiling
As images are moved out of a RPi folder on the QNAP, Syncthing will automatically delete them on the corresponding RPi. The QNAP will effectively be centrally managing when images are cleared from the RPi boxes rather than have to individually manage the pruning schedule on 15 RPi boxes.
And because the QNAP is regularly moving images out of the RPI folders, there’s no chance that a RPI will inadvertently cause archived images to be deleted.
This is exactly what we are setting up also for managing file transfers. We will use syncthing to manage the remote cleanup. In our case as an extra precaution we gzip the files at the source and don’t cleanup files that don’t ungzip. It’s an extra probably unnecessary precaution but we are gonna do it anyway because it’s easy.
The right way to do this is to get the pi’s to rsync the photos as it takes them. You are using bidirectional sync tool for single directional transfers. Don’t do that.