hwittenborn / celeste

GUI file synchronization client that can sync with any cloud provider
GNU General Public License v3.0
1.23k stars 40 forks source link

Add on-demand sync functionality. #42

Open RayJW opened 1 year ago

RayJW commented 1 year ago

The idea for this feature is inspired by the functionality offered by multiple cloud providers like pCloud and OneDrive in their native clients.

The aim is to display all files stored in these cloud platforms within the file manager without requiring them to be downloaded. Once accessed through opening and loading them with an application, the files will be synchronized in the background and stored locally. Ideally, there should also be the capability to always keep specific folders/files synchronized in case there is a desire to access them offline or in the event of poor internet connectivity.

The advantages are the ability to synchronize files to the cloud without having to visit the web interface or syncing a particular folder to the local storage initially, and ensuring that references to these files are not broken in the event that they are not intended to be kept on the computer constantly.

hwittenborn commented 1 year ago

Thanks for making the feature request! Just repeating some of what I said in https://github.com/hwittenborn/celeste/issues/27#issuecomment-1421566267, but I still need to do some research into how to implement that behavior, which probably won't happen much until I get some other stuff such as more login providers done.

RayJW commented 1 year ago

@hwittenborn I just wanted to post an update in case anyone is trying to tackle this. I looked an into this a little, and it might actually be easier than thought. Since Celeste uses rclone for the backend, the easiest method is to just use rclone mount, which already provides this functionality. There are some things that need to be considered like when to use what options depending on the backend etc. e.g. --vfs-cache-mode needs to be set appropriately depending on the supported features by the backend. Then it would probably also be good to give the user the option to decide if they want to keep certain folders downloaded for use.

I might look into this if I have time. However, I think I'm not familiar enough with Rust for this yet.