Feature request: detect move between folder pairs

Discuss new features and functions
BazCuda
Posts: 12
Joined: 21 Aug 2019

Post by BazCuda • 11 Sep 2019, 00:29

Hopefully this isn't a duplicate of an existing request; apologies if it is.
It's also possible FFS already does this but I've got it configured incorrectly.
I'm happy to be pointed in the right direction if that's the case.

In a nutshell, I'd like to be able to move files between all monitored folders and for FFS to always execute a "move" on Google Drive rather than a delete and an upload.

For example, say I have a local drive L: synced with a Google Drive, GD:
Within L:\Audio are subfolders for artists, bands, composers, etc. and within L:\Video are subfolders for Comedy, Movies, Sports, etc.

I have a batch job with two folder pairs which sync
L:\Audio to GD:\Audio, and
L:\Video to GD:\Video

I have a RealTimeSync scheduled task which starts when I login to Windows which continuously monitors L:\Audio and L:\Video and runs the batch job when it detects a file move.

Currently, if I move a file from one subfolder of L:\Audio to another subfolder of L:\Audio, FFS actions a simple "move" within GD:\Audio\.... Similarly, if I move any file between subfolders of L:\Video, FFS actions a "move" within GD:\Video\...

However, unless I'm mistaken (which is entirely possible), if I move a file from within L:\Video\... to within L:\Audio\..., or vice versa, the batch job will delete the file from GD:\Video\... and perform an upload of the file from L:\Audio\... to GD:\Audio\..., when in fact, with the information contained in the monitored folders listed in the .ffs_real file, and the folder pairings listed in the .ffs_batch file, FFS has all the information it needs to recognise that it can perform a simple "move" from GD:\Video\... to GD:\Audio\....

I could achieve this by monitoring the entire local drive, but that's 2TB and ~500K files for FFS to keep comparing with Google Drive. Or I could maybe create L:\MonitoredFolders and make L:\Audio and L:\Video subfolders of this umbrella folder. But I like the way the [34] root folders of my drive are currently organised and it would have a massive impact on other areas (e.g. Windows libraries) if I were to now start moving them around.

If FFS doesn't already support this, is this something you'd consider implementing ?

Thanks for your time.

User avatar
Plerry
Posts: 707
Joined: 22 Aug 2012

Post by Plerry • 11 Sep 2019, 15:03

The database FFS uses to detect moved files is sync (scope) specific.
This means that if you have two separate FFS batch syncs for L:\Audio\ vs GD:\Audio\
and for L:\Video\ vs GD:\Video\, FFS will not recognize a move from L:\Audio\ to L:\Video\
(or vice versa) as a move, and consequently do a delete-from GD:\Audio\
and copy-to GD:\Video\ (or vice versa).

Conversely, if you have a single FFS batch sync for L:\Audio\ vs GD:\Audio\ AND
L:\Video\ vs GD:\Video\ (and have selected to use the "detect moved files" option),
FFS should recognize a move from L:\Audio\ to L:\Video\ (or vice versa) as a move,
and consequently perform a move from GD:\Audio\ to GD:\Video\ (or vice versa)
instead of a delete + copy.

User avatar
Zenju
Site Admin
Posts: 5042
Joined: 9 Dec 2007

Post by Zenju • 12 Sep 2019, 13:32

Detection of moved files requires the sync.ffs_db file, which is stored at a folder-pair level. So for move detection to do its job, everything needs to be inside the same folder pair.

The solution for your case: Just go one level up, and sync L:\ with GD:\ and set include filters "\Video\" and "\Audio\".

BazCuda
Posts: 12
Joined: 21 Aug 2019

Post by BazCuda • 13 Sep 2019, 08:54

Thanks Zenju (and Plerry). I'd forgotten all about include filters. Real time moves between all the required folders is now working exactly as I'd hoped, resulting in server-side moves rather than new uploads. Great stuff. Thanks.