[fdo] Cloud File API

darkdragon darkdragon-001 at web.de
Thu Dec 30 19:12:16 UTC 2021


It would be really nice if Linux had something similar to Windows' Cloud
File API [1]. This would allow file sync clients like Nextcloud [2] or
Seafile [3] to provide a similar great experience as on Windows. Apple
provides similar functionality with iCloud in recent versions of macOS as
well. This includes an offline index cache and selectively marking
files/folders for offline use (download to cache and sync) while removing
others locally to free up space while keeping the files in the cloud. Other
people have requested such functionality before (see [4]).

Depending on the implementation, such functionality could be added to _any_
file system including Samba (see approach of OFS [5] which is unfortunately
not very well integrated in Linux desktops).

With my limited knowledge on the internals of Linux file systems, I imagine
one possible implementation as follows:

Desktop: Protocol to mark files for download or remove local copy.
Userspace: Sync daemon to keep index and cache copy in sync and resolve
conflicts.
Kernel: Provides a virtual file system (VFS) based on local cache and
forwards online-only content requests to another daemon or fuse-filesystem.
Additional metadata functionality like status (last synced timestamp,
currently syncing, available offline/cloud, ...) should be provided.

What do you think of the functionality in general?
What do you think of my implementation idea?
Which projects of the Linux ecosystem would be involved for such
functionality?
How would you suggest driving this forward?

[1]:
https://docs.microsoft.com/en-us/windows/win32/cfapi/build-a-cloud-file-sync-engine
[2]:
https://nextcloud.com/blog/nextcloud-desktop-client-3-2-with-status-feature-and-virtual-files-available-now/
[3]:
https://blogs.seafile.com/2020/08/08/seafile-drive-client-2-0-next-generation-alternative-to-traditional-file-servers/
[4]:
https://stackoverflow.com/questions/66467255/virtual-file-system-api-cloud-provider-synchronization-api-for-linux
[5]: http://offlinefs.sourceforge.net/wiki/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/freedesktop/attachments/20211230/384d4918/attachment.htm>


More information about the freedesktop mailing list