Missing endpoints when using librclone

What is the problem you are having with rclone?

I'm trying to develop an application using librclone, but I'm finding that some of the RC API endpoints I need to use return 404. In particular, everything under mount/* such as mount/mount. This seems to be the same as <forum URL>/missing-directory-copy-move-methods-in-librclone/24503.

The methods in question also don't appear in the results returned from rc/list.

I wondered if it was due to needing authentication to use these methods, so I tried setting the --rc-no-auth option in various ways (using an environment variable, and using the _config argument to the API) but no luck.

What is your rclone version (output from rclone version)

I built librclone.so using release tag v1.56.0, using this command: go build --buildmode=c-shared -o librclone.so ./librclone.

Which OS you are using and how many bits (eg Windows 7, 64 bit)

Ubuntu 21.04, 64 bit

Which cloud storage system are you using? (eg Google Drive)

None yet.

The command you were trying to run (eg rclone copy /tmp remote:tmp)

Easiest way to see this is probably to put the following into librclone/python/test_rclone.py:

import json
...
    def test_rc_list(self):
        o = self.rclone.rpc("rc/list")
        print("Got list: ", json.dumps(o))

Then you can observe that the mount/* endpoints don't appear in the results.

The rclone config contents with secrets removed.

N/A

A log from the command with the -vv flag

Similar to the other issue I linked, I get 404s with messages like "couldn't find method \"mount/mount\""

Aha, I think I fixed it like this:

Hi Tom, welcome to the forum

Good post and proposed solution!

I do not have enough rclone experience to comment on the details in your issue or proposed solution, but the code looks reasonable, simple, and fine to me.

I suggest you make a pull request to get the change into the development pipeline. You can find the contributing guide here if you haven’t already found it. You may also want to add a simple test or two that will ensure that the functionality doesn’t get removed or malfunctions in a future release.