rclone can be used to access many remote storage providers from the shell, even on platforms which may not be supported by the native clients of such provider. A platform which is supported is required to do the authorisation shenanigans however.
The use case here is that I wanted access directly to my Dropbox on my FreeBSD server, and Dropbox is not supported on FreeBSD.
The below steps set this out:
Note: I refer to rclone v1.48.0 on FreeBSD 12.0-RELEASE-p9
-
On FreeBSD
pkg install rclone rclone config
Answer the qs until it gets to the authorisation part and if it asks if you want to autoconfigure, hit ‘n’—as I am assuming the server is headless and therefore cannot run a graphical browser. If it can you can just hit ‘y’ in which case the below steps 2/3/4 are not needed.
-
Then on OSX
brew install rclone rclone authorize "dropbox"
-
It will print an access token like this
2019/12/21 20:07:11 NOTICE: Config file "/Users/mike/.config/rclone/rclone.conf" not found - using defaults If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=[...] Log in and authorize rclone for access Waiting for code... Got code Paste the following into your remote machine ---> {"access_token":"[...]","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"} <---End paste
-
Paste in the JSON with the token on the FreeBSD machine
-
When you’re done you can test with
rclone listremotes
and it should show up.
To list all the directories on the remote source for instance (note my remote is called dbox here)
rclone lsd dbox:
rclone --help
will give a full list of commands
rclone is a truly fantastic piece of software — I was able to download c. 30gb of data from my dropbox to my FreeBSD in about 10 minutes. Hats off to the team at rclone.org