-
Notifications
You must be signed in to change notification settings - Fork 807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VFS on Linux #3668
Comments
For consistency, VFS support on Linux should not be bound to any specific desktop environment. A situation where nautilus or dolphin show some file as present yet command line utilities or even graphical programmes that don't use the GNOME/KDE libraries don't would be rather odd and irritating. |
@vasyugan @tobiasKaminsky At the moment it is planned to register a custom xattr and read that when opening files. That would still need support from the program that reads the file, but it would not be bound to GNOME or KDE. A real vfs like on Windows and macOS would need support from the kernel side I think. |
pCloud does an excellent job at using virtual fs to browse/sync files. I think that it would be a great addition to the Nextcloud Linux Client if it could do the same. |
Couldn't such a thing be implemented using FUSE? This way, you would not have to get code into the kernel, I guess. In other words: Isn't that exactly what FUSE can do for you? |
FUSE is not a good solution when network is involved because the normal file API you end up using to access FUSE filesystems is not able to cope with network errors. |
Hello Aditi feel free to contribute by opening a PR |
For reference, here's a related fuse prototype for Owncloud: (also, for anyone searching for virtual file support, check this) |
I suppose that this only works with GTK/QT applications, right? I definitely would need something that also works in the shell. I very often find that I can get things done quicker and with more ease in the shell. |
My employer is searching for a solution like nextcloud, but a must have is a VFS for Mac and Linux. |
Currently there is no such thing for Linux. |
When I enable the experimental support that is there, it crashes when i hit the "enable virtual file support" button.
|
Using FUSE for such a feature is clearly the right thing to do here, in my opinion. |
Any update on this ? I use Arch + Gnome and the client really lack of this feature :( |
As @mgallien writes, fuse is unable to cope with network errors, so it would need to be fixed first. |
Correct me if I'm wrong, but I think kio-fuse is able to cope with network errors, and actually implements webdav support. |
I did a little research and at least for dolphin/kio the xattr support does not seem to be great. Also there is no universal xattr support so many tools and programs seem to strip them on save. |
Is showExperimentalOptions still available on v3.4.4? I'm on Fedora 36 but i am not able to see it under settings rear adding the line on the config file and restarting. |
yes should still work as we did not change anything there |
Same for me - my solution was to switch from flatpak version to AppImage Works now :) |
If using flatpak, the file can be found in |
Please implement this as a FUSE filesystem. We need full compatibility with all VFS features. It's certainly possible to do this despite network delays/errors. rclone's FUSE support with its full caching mode is already effectively the functionality I want, it would just be nice to have this built-in to the nextcloud client. |
Not a current blocker for me but I foresee $futureMe caring about this significantly, as well as my clients. Here's hoping this can come to fruition and be generally available as a default ;) |
I still don't understand why this is still an issue. Owncloud has it. I'm running NC and OC in parallel and OC just has the better client overall. |
@flamingm0e have you experienced any issues running the OC desktop client against an NC server (or vice-versa)? |
Sorry. I didn't mean to insinuate I was running both clients against a single NC server. I have both servers running: |
Yeah it's a shame, open source software that ironically runs the best on proprietary commercial software that is Windows. |
well if OC has it, and the code is open source, then someone from the community could open a pull request to add to NC, no? any reference to how OC does it on, or since when? |
hmmm as far as i can find owncloud uses placeholder files with a custom extension on mac and linux: https://github.com/owncloud/client/wiki/Virtual-Files I presume that they replace this file once the user actually tries to open the file 🤔 |
That's basically how it currently works using the beta branch of Nextcloud Client on Linux. A suitable example may be onedriver which basically uses FUSE, but as you can see in its README (see Known Issues) it does not integrate well with file managers and has a few of rough edges, so I can't blame NC's developers for wanting a better solution. Unfortunately it appears that no steps have been made in estabilishing a proper "Cloud Files API" for the Linux Desktop |
Sounds like we need an standard API on linux for it, tho i'm not sure is this would be portal or a protocol issue 🤔 EDIT: Ok actually looking at the known issues of onedriver, it seems to be a GNOME issue.........and a microsoft issue |
Would it make sense to use a project like GDFS as a baseline and implement a similar FUSE base filesystem that would work similarly? ... Not that I know if this would work or not. Just saw it may be an option. Preferably, reliance on systemd would be optional |
Honestly, I wonder if just adding an optional rclone dependency and automatically managing rclone mounts would be the way to do this for Linux |
that does look promising: https://rclone.org/commands/rclone_mount/#vfs-virtual-file-system |
rclone is an entirely different use case. It may fit many people and will not fit many more. For example rclone caches until the cache expires. It will not sync changes from the cloud during that time. If collaborating with others this may quickly become a deal breaker for offline availability. |
According to the documentation at https://rclone.org/commands/rclone_mount/#vfs-cache-mode-full it uses sparse files. This means it will not download the whole file and only the parts of it that are needed. You can also set a short caching time to save disk space. There is even a mode with no caching, although some applications can not work with this mode. Cache expiration is configurable. It will even poll for changes at a configurable interval. You can make it 1s. On demand sync is not necessary as it is polling for changes and syncing them constantly. I am unsure of the syncing activity. Since the folks working on Linux do not seem too interested in creating a universal VFS implementation, rclone can be a good alternative. I would be grateful if Nextcloud would consider using rclone in the background until Linux implements the necessary API. Currently, I use the built-in WebDAV functionality in KDE. Unfortunately, this is not available in any non-KDE apps or from the terminal. I would have used rclone if this functionality was missing from KDE. |
that is actually what vfs-cache-mode full is with rclone, it does not download the actual the data, just the metadata needed to download the data on demand
if i'm reading/understanding this correctly it seems the universal API for this on linux is FUSE, rclone is using that under the hood. if rclone isn't what we want, then an iniative for vfs solution on top of fuse would need to be started. If FUSE is unfit, then some from scratch filesystem would developed for the linux kernel, which is likely a multiyear endeavor in both cases we'd need stakeholders, nextcloud developers/users, proton developers/users and others to come together and create the filesystem we need. That's the way things move in the linux world— there is no "they", only "we" |
did anyone end up figuring out what causes this? having this problem on 3.14.0daily on my laptop, dont on my similarly-setup desktop for some reason. running arch with hyprland fwiw, can reproduce using the same steps of adding edit: 3.12.2git (2:3.12.2-1) seems to work. |
Maybe openVFS could be considered as a project proposal for initiatives like Outreachy Internships or Google Summer of Code? GNOME was selecting project proposals for Outreachy just a month ago. This could provide an opportunity for openVFS to be explored further |
I'm also kind of confused why the current virtual file system implementation that you can enable using (I think some of the above mentioned solutions would also be nice, but i'm mainly wondering why the current implementation hasn't shipped as stable for years now) |
Personally I've never been able to make the experimental VFS work. |
For me, it's been working flawlessly for 2-3 years on Debian and OpenSUSE Tumbleweed. I've also wondered why it's still so hidden away. |
What desktop environment are you using? I assume the support varies between different DEs and if one is using QT, GTK or other applications. |
i believe the comment above yours answers that question |
This might be due to something external to NC. I suggest looking into how default-applications are defined in your distro to see if
which should match the placeholder with the associated mime type
And that points to
(Long story, thanks for walking all of it with me.) So if you can verify that all of that is correctly defined, and that something like |
Gnome. |
A workaround for KDE users is adding the nextcloud account to dolphin (system settings -> accounts) as that provides a way to get "virtual" files, although it seems to work more akin to a network share, such that files always get downloaded (possibly some temp. caching) rather than being stored locally after opening them once. It has some benefits like easily uploading folders etc. This is what I do since: For me the nc-client just crashes when trying to enable the experimantal-VFS, I don't see any syck option during install or adding a sync connection, I can only add it afterwards by clicking the three dots on an existing sync-connection (and then it crashes). |
My previous comment:
I reiterate my previous suggestion, this time bringing into consideration the following article: GNOME STF 2025: Call for Ideas and Contractors
|
VFS on Linux needs to have a proper support on KDE/Gnome first, so first step would be to create and commit such a RFC.
Then monitor it, so that we can afterwards implement it.
As many Linux users also use CLI, maybe we can also enhance our nextcloud to sync/upload/download, e.g.:
nextcloudcmd myVirtualImage.png.nextcloud -> downloads and opens it
The text was updated successfully, but these errors were encountered: