maestral icon indicating copy to clipboard operation
maestral copied to clipboard

Smart Sync

Open rustyx opened this issue 2 years ago • 7 comments

The official Dropbox Windows and Mac client has a feature called Smart Sync - it keeps files online-only until they are needed locally. It's a nice feature for large dropboxes as it saves local disk space and network bandwidth, and it's distinctly different from selective sync, which operates manually at a subtree level; Smart Sync operates automatically at individual file level. On Windows it works via an FS filter driver. I think on Linux this can be achieved via FUSE? The only thing I'm unsure about is how to handle thumbnails.

rustyx avatar Oct 05 '21 21:10 rustyx

I would love this, the last thing chaining me to the official Dropbox app. Any plans to support?

joelrendall avatar Oct 28 '21 17:10 joelrendall

I'm missing that here too, need it for a large dropbox. Please implement!

hpbanitz avatar Apr 03 '22 20:04 hpbanitz

This might be possible if the Maestral devs could use/adapt @rianhunter's dbxfs as the back-end. Dbxfs works brilliantly by itself, it's just a little fiddlier to get it to automount and unlock on login, as it's CLI-only. Install it in a python venv as outlined here. It currently does not support the team folders from Dropbox for Business accounts, which is a deal-breaker for me :frowning_face:

It would be amazing if these two projects could be combined to get Maestral's benefits of autostart, selctive sync, GUI, etc. and dbxfs's online-only-style syncing.

Roy-Orbison avatar Oct 06 '23 06:10 Roy-Orbison

@Roy-Orbison If you would like team folders support in dbxfs, just reach out so we can negotiate a contract for implementing this feature for you.

rianhunter avatar Oct 06 '23 17:10 rianhunter

@rianhunter I looked into it and wrote a tiny patch based on this forum reply. It seems to work well. Maybe it would be better to first check if root_namespace_id and home_namespace_id differ, though forcing it could ensure consistency if that setting were changed whilst the filesystem was mounted. I imagine this could be a good default, those with identical namespace IDs should continue to get the current behaviour. Maybe you'd prefer it behind a flag for backwards-compatibility. Feedback is welcome.

Due to your (quite reasonable) objections to GitHub, would you consider hosting it on GitLab or some other public place for issues, wiki, etc.?

@samschott do you have any interest in using dbxfs as a back-end?

Roy-Orbison avatar Oct 09 '23 06:10 Roy-Orbison

@Roy-Orbison Something like that could work but requires plumbing for configuration and initial set-up. I prefer self-hosting now. Email works as a means for PRs and issues.

rianhunter avatar Oct 09 '23 12:10 rianhunter

I'd need to look into dbxfs to see how feasible it would be to use it as a "backend". FUSE-like or mountable approaches are very different from two-way sync, and come with their own pros and cons.

@rianhunter, from my experience with team folders, the tricky parts are all around handling when a user joins or leaves a team / converts their account type. Managing those transitions gracefully with the information available from the Dropbox API, including changing cursers for sync state, took quite a lot of care. Some of this may be easier to solve for the use case of "mounting" a Dropbox folder.

samschott avatar Oct 09 '23 21:10 samschott