File ingest folder mode

Hi! I have a use-case which seems like something Syncthing could potentially be really perfect for, but I don’t believe it’s currently possible. (Maybe I’m wrong and someone will show me how to do it :smiley: )

The use case is the following:

  • I’m a photographer who takes a lot of photos. I need to move the photos from my SD card to a computer so that I have space to take more photos.
  • When I’m at home I move photos from my Camera’s SD card to my desktop computer, where my photo library lives and is backed up.
  • When I’m traveling, I move photos from my SD card to my laptop.
  • I need a solution for syncing files from my laptop to my desktop computer, but not the other way round, because my laptop doesn’t have enough storage for my entire photo library!
  • Furthermore, because I will be deleting photos off of my laptop to reclaim storage space, I don’t want Syncthing to then delete those files off of my desktop computer!
  • I often will edit or share photos directly from my laptop, so I don’t want them to get automatically deleted without my input either.

If I intended to keep the files on my laptop forever, then the send only folder type would work for my use case I think, but if I understand correctly, it’s not meant for that, but instead as a “master copy” / “source of truth” of the data it contains.

Instead, I would need a folder type called something like copy only or ingest, where files are copied from this folder to the cluster, but no external changes are sent back, and deleting files locally does not cause them to be deleted externally.

In fact, it would be nice to have a button in the UI (similar to the Override Changes button send only folders have) which would erase all data from the local folder that has already been sent upstream – so that you can delete files safely. :smiley:

So what do people think – is there some other solution to my use-case I just haven’t thought of, or would this be a great potential feature for Syncthing to have? :upside_down_face:

It sounds like a combination of Syncthing’s “Send Only” folder type plus its ignoreDelete setting meets your basic requirements.

Local edits on your laptop would result in files with newer timestamps so they wouldn’t be overwritten or deleted by Syncthing even if your laptop was set to “Send & Receive”. Syncthing’s file conflict detection would merge the list of files that have been edited locally on both your laptop and desktop.

However, FreeFileSync (https://freefilesync.org/) might be a better fit if you have a solution for connecting your laptop and desktop over a local network and/or internet connection.

2 Likes

+1 for FreeFileSync. I use it this way.

I also use Syncthing from Android to XigmaNAS for a similar process. On XigmaNAS I have a shell script to hardlink the photos from a single directory into year-month folders. If I later delete photos on the phone they are still on the server in the year-month folder because of the hard-link, but don’t consume additional space. The year-month photos are shared over SAMBA with my Windows computer.

As an aside, XigmaNAS, like many distributions, includes Syncthing with auto-update disabled. I added a startup script to link the current version of Syncthing on persistent storage in place of the distro version. That gives me the current version plus auto-update.

1 Like