[VFS Plugin] Google Drive, OneDrive, S3, WebDAV Integration(via rclone)

Hi,

Managing multiple cloud drives (Google Drive, OneDrive, WebDAV, S3 etc.) was driving me crazy, so I created a VFS plugin for Rclone to handle them natively in Directory Opus.

It lets you browse rclone:// natively. The plugin will automatically start rclone.exe in the background to handle API requests, and you can manage your cloud drives as usual using the standard rclone config command. The best part is if you double-click a file to edit, it auto-uploads your changes when you save. (Just a heads-up: using the right-click "Open With" menu doesn't trigger the upload yet, still figuring that out).

It's very much in early testing so expect some bugs. The source code and a pre-compiled .dll are on my GitHub if anyone wants to play around with it: ixiumu/dopus-rclone-vfs

Let me know if it breaks anything!

2 Likes

Cool idea.
However, isn't it the same as using rclone_mount?

Also, some nitpicking:

  • There are no .sln and .vcxproj files in the repo.
  • Downloading the DLL from gumroad.com is a pain.
  • It is better to ask GitHub Actions to build the binary and create a release. It is more secure for the users.
  • You can simplify your code a lot by using the boost library.
  • My advice would be to use CMake instead of .vcxproj.

Thanks for the feedback!

To answer your question about rclone mount: I've fought with rclone's caching for years and was never fully happy with it. I just prefer this direct VFS approach—it reminds me of using WinSCP.

As for the missing .sln/.vcxproj files, I currently just compile directly via the command line with cl.exe.

cl.exe /O2 /EHsc /utf-8 /LD DOpusRclone.cpp RcloneClient.cpp /link /DEF:DOpusRclone.def /OUT:DOpusRclone.dll

Regarding Gumroad: you can grab it for $0, but you make a fair point. Doing automated releases via GitHub Actions is definitely better for users.

Good call on CMake, CI, and Boost. I'll look into moving things over and refactoring soon.

Thank you for the explanation.

As for the missing .sln/.vcxproj files, I currently just compile directly via the command line with cl.exe.

You should add /MT so that your DLL doesn't depend on the Visual C++ Redistributable.

Good call on CMake, CI, and Boost. I'll look into moving things over and refactoring soon.

If you want to do these changes, you can use my project as a reference DirectoryOpus-CSV-viewer-plugin.

Thank you for sharing, your plug-in gave me inspiration, dopus plug-in is full of infinite possibilities.
At present I am trying to refer to your plug-in to develop more plug-ins such as Windows services, registry, task manager, scheduled tasks and other Windows system components s3, nfs and other protocols openlist, ffempg and other open source software can be made plug-in.
Now I have encountered a problem, the address bar icon has always been a network icon, how to correctly customize the address bar icon.
I've tried everything, but I haven't solved the problem.

I feel you, I ran into the exact same issue. I tried calling VFS_GetFileIconW (if I recall correctly) to change the address bar & tab icon. It didn't work, it just blanked out the icon entirely, but it still refused to display my custom one. I ended up just giving up.