What is the problem you are having with rclone?
Recently, when rclone calls my default browser to re-authenticate to Google Drive, I move through the options, then "Continue" which hangs perpetually -- this happens with all firewalls and filters disabled. Using MacOS/Firefox 115. Following documentation for getting this auth URL from the CLI instead, I re-ran the configuration to adjust my preferences for Google Drive to NOT open a browser. It directs me to "Option config_token" which.... needs a browser window.
Run the command 'rclone version' and share the full output of the command.
Yes, via GIT.Which cloud storage system are you using? (eg Google Drive)
Google Drive
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
rclone config
The rclone config contents with secrets removed.
Already have a token - refresh?
y) Yes (default)
n) No
y/n>
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> n
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "[redacted]"
Then paste the result.
Enter a value.
config_token>
This value is required and it has no default.
config_token>
A log from the command with the -vv
flag
Select remote.
Choose a number from below, or type in an existing value.
1 > googledrive
2 > rpnasw
3 > wasabi
remote> 1
Editing existing "googledrive" remote with options:
- type: drive
- client_id: [redacted]
- client_secret: [redacted]
- scope: drive
- token: {"access_token":"[redacted]","expiry":"2023-07-05T21:02:48.422202-05:00"}
- team_drive:
- acknowledge_abuse: true
2023/07/14 11:43:08 DEBUG : googledrive: config in: state="*all", result=""
2023/07/14 11:43:08 DEBUG : googledrive: config out: out=&{State:*all-set,0,false Option:[redacted] OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:08 DEBUG : googledrive: config: reading config parameter "client_id"
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a string value. Press Enter for the default ([redacted]).
client_id> [redacted]
2023/07/14 11:43:29 DEBUG : googledrive: config in: state="*all-set,0,false", result="[redacted]"
2023/07/14 11:43:29 DEBUG : googledrive: config out: out=&{State:*all,1,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:29 DEBUG : googledrive: config in: state="*all,1,false", result=""
2023/07/14 11:43:29 DEBUG : googledrive: config out: out=&{State:*all-set,1,false Option:[redacted] OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:29 DEBUG : googledrive: config: reading config parameter "client_secret"
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a string value. Press Enter for the default ([redacted]).
client_secret> [redacted]
2023/07/14 11:43:52 DEBUG : googledrive: config in: state="*all-set,1,false", result="[redacted]"
2023/07/14 11:43:52 DEBUG : googledrive: config out: out=&{State:*all,2,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:52 DEBUG : googledrive: config in: state="*all,2,false", result=""
2023/07/14 11:43:52 DEBUG : googledrive: config out: out=&{State:*all,3,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:52 DEBUG : googledrive: config in: state="*all,3,false", result=""
2023/07/14 11:43:52 DEBUG : googledrive: config out: out=&{State:*all,4,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:52 DEBUG : googledrive: config in: state="*all,4,false", result=""
2023/07/14 11:43:52 DEBUG : googledrive: config out: out=&{State:*all,5,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:52 DEBUG : googledrive: config in: state="*all,5,false", result=""
2023/07/14 11:43:52 DEBUG : googledrive: config out: out=&{State:*all-set,5,false Option:drive OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:52 DEBUG : googledrive: config: reading config parameter "scope"
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own string value.
Press Enter for the default (drive).
1 / Full access all files, excluding Application Data Folder.
\ (drive)
2 / Read-only access to file metadata and file contents.
\ (drive.readonly)
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ (drive.file)
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ (drive.appfolder)
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ (drive.metadata.readonly)
scope> 1
2023/07/14 11:43:55 DEBUG : googledrive: config in: state="*all-set,5,false", result="drive"
2023/07/14 11:43:55 DEBUG : googledrive: config out: out=&{State:*all,6,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:55 DEBUG : googledrive: config in: state="*all,6,false", result=""
2023/07/14 11:43:55 DEBUG : googledrive: config out: out=&{State:*all,7,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:55 DEBUG : googledrive: config in: state="*all,7,false", result=""
2023/07/14 11:43:55 DEBUG : googledrive: config out: out=&{State:*all-set,7,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:43:55 DEBUG : googledrive: config: reading config parameter "service_account_file"
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all-set,7,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,8,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,8,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,9,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,9,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,10,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,10,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,11,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,11,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,12,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,12,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,13,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,13,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,14,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,14,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,15,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,15,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,16,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,16,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,17,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,17,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,18,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,18,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,19,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,19,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,20,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,20,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,21,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,21,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,22,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,22,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,23,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,23,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,24,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,24,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,25,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,25,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,26,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,26,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,27,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,27,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,28,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,28,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,29,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,29,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,30,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,30,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,31,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,31,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,32,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,32,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,33,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,33,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,34,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,34,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,35,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,35,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,36,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,36,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,37,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,37,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,38,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,38,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,39,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,39,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,40,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,40,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,41,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,41,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,42,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,42,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,43,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,43,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all,44,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config in: state="*all,44,false", result=""
2023/07/14 11:44:02 DEBUG : googledrive: config out: out=&{State:*all-advanced Option:false OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:02 DEBUG : googledrive: config: reading config parameter "config_fs_advanced"
Edit advanced config?
y) Yes
n) No (default)
y/n>
2023/07/14 11:44:17 DEBUG : googledrive: config in: state="*all-advanced", result="false"
2023/07/14 11:44:17 DEBUG : googledrive: config out: out=&{State:*postconfig Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:17 DEBUG : googledrive: config in: state="*postconfig", result=""
2023/07/14 11:44:17 DEBUG : googledrive: config in: state="", result=""
2023/07/14 11:44:17 DEBUG : googledrive: config out: out=&{State:*oauth,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:17 DEBUG : googledrive: config out: out=&{State:*oauth,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:17 DEBUG : googledrive: config in: state="*oauth,teamdrive,,", result=""
2023/07/14 11:44:17 DEBUG : googledrive: config out: out=&{State:*oauth-confirm,teamdrive,, Option:true OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:17 DEBUG : googledrive: config: reading config parameter "config_refresh_token"
Already have a token - refresh?
y) Yes (default)
n) No
y/n>
2023/07/14 11:44:31 DEBUG : googledrive: config in: state="*oauth-confirm,teamdrive,,", result="true"
2023/07/14 11:44:31 DEBUG : googledrive: config out: out=&{State:*oauth-islocal,teamdrive,, Option:true OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:31 DEBUG : googledrive: config: reading config parameter "config_is_local"
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> n
2023/07/14 11:44:34 DEBUG : googledrive: config in: state="*oauth-islocal,teamdrive,,", result="false"
2023/07/14 11:44:34 DEBUG : googledrive: config out: out=&{State:*oauth-remote,teamdrive,, Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:34 DEBUG : googledrive: config in: state="*oauth-remote,teamdrive,,", result=""
2023/07/14 11:44:34 DEBUG : sending scope = "drive"
2023/07/14 11:44:34 DEBUG : sending acknowledge_abuse = "true"
2023/07/14 11:44:34 DEBUG : sending client_id = "[redacted]"
2023/07/14 11:44:34 DEBUG : sending client_secret = "[redacted]"
2023/07/14 11:44:34 DEBUG : googledrive: config out: out=&{State:*oauth-authorize,teamdrive,, Option: OAuth:<nil> Error: Result:}, err=<nil>
2023/07/14 11:44:34 DEBUG : googledrive: config: reading config parameter "config_token"
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "[redacted]"
Then paste the result.
Enter a value.
config_token>