GUI for S3 bucket sync

Hello, and thank you for rclone (it's amazing)!

I would like to create a very simple, easy-to-use GUI for the "sync" function of rclone using a go UI library, limited to S3 buckets.

The idea is that the user wouldn't have to install anything (not even rclone), just:

  • start the executable (statically compiled for Win / macOS / Linux)
  • provide the bucket name, key id, secret key, and local directory
  • press upload or download

The UI will invoke functions that are part of rclone and it will show rclone's output in a text window (including the current progress).

To achieve this, is it possible to:

  • invoke the sync function in the rclone code, passing the remote information explicitly (instead of relying on a remote configure with "rclone config")
  • capture the output of rclone (to redirect it)

I know I could install rclone, configure a remote, and capture the output of a command-line invocation, and that would be much easier for me, but I'd like to simplify things as much as possible for the user.

hello and welcome to the forum,

that sounds very interesting,

many rcloners use https://kapitainsky.github.io/RcloneBrowser

and on android, https://github.com/x0b/rcx

and i assume that you know rclone itself have a GUI, perhaps you could add a quick mode for s3.
https://rclone.org/gui/

Thank you very much for the reply!

Yes, I'm aware of RcloneBrowser and of the web GUI, but unfortunately my users are definitely not technical and I need something much easier.

For example, it would be very difficult to make them install Rclone before RcloneBrowser.
And they would get lost in all the different functions.

I was hoping to find a simple entry point in the rclone codebase to invoke just a sync for a given key/secret/bucket.

Perhaps you are looking for the remote control API:
https://rclone.org/commands/rclone_rcd/
https://rclone.org/rc/

This is the API used by the GUI's @asdffdsa mentioned above.

I haven't tried the remote control commands, but it looks like they can do all you asked for.

Thanks!

This makes sense, since RcloneBrowser was developed in C++, while rclone is in Go.
But I was hoping that, by developing the GUI in Go, I could avoid the requirement for a separate installation of rclone.

I guess you can compile your code into rclone and then do something similar to the rclone webgui or the unit test of the rc server, though I am not sure exactly how they trigger the loop-back.

You can find the webgui code in this folder:
https://github.com/rclone/rclone/tree/master/fs/rc/webgui

and the rcd test in this file:
https://github.com/rclone/rclone/blob/master/fs/rc/rcserver/rcserver_test.go

If I were in your situation, then I would prefer to call the officially compiled rclone binary at the expense of an extra file in the distribution zip. This just makes it much easier to determine if an issue is due to your own code or rclone - and you have better tools to troubleshoot and report any issues encountered by your users.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.