First timer - trying to configure rclone to copy files from Windows file share to google shared drive

here's my info' the json and id's are not the real ones

What is the problem you are having with rclone?

googleapi: error 404: file not found: ., notFound

trying to run rclone config

Run the command 'rclone version' and share the full output of the command.

v 1.66.0

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)

Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.

C:\Users\Administrator\Downloads\rclone>rclone config redacted
[Sack01]
type = drive
client_id = XXX
client_secret = XXX
scope = drive
token = XXX
team_drive = XXX
root_folder_id =

[EXTRACT]
type = drive
client_id = XXX
client_secret = XXX
scope = drive
service_account_file = C:\Users\Administrator\Downloads\rclone\rclone-file-migration-c4ee567ab40j.json

A log from the command that you were trying to run with the -vv flag

C:\Users\Administrator\Downloads\rclone>rclone config -vv
2024/04/19 16:07:38 DEBUG : rclone: Version "v1.66.0" starting with parameters ["rclone" "config" "-vv"]
2024/04/19 16:07:38 DEBUG : Using config file from "C:\\Users\\Administrator\\AppData\\Roaming\\rclone\\rclone.conf"
Current remotes:

Name                 Type
====                 ====
Sack01             drive
EXTRACT         drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> e

Select remote.
Choose a number from below, or type in an existing value.
 1 > Sack01
 2 > EXTRACT
remote> 2

Editing existing "EXTRACT" remote with options:
- type: drive
- client_id: --myid--.apps.googleusercontent.com
- client_secret: --OAuth secret--
- scope: drive
- service_account_file: C:\Users\Administrator\Downloads\rclone\rclone-file-migration-c4ee567ab40j.json

2024/04/19 16:07:45 DEBUG : EXTRACT: config in: state="*all", result=""
2024/04/19 16:07:45 DEBUG : EXTRACT: config out: out=&{State:*all-set,0,false Option:---myid--.apps.googleusercontent.com OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:45 DEBUG : EXTRACT: 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 (--my key--).
client_id>

2024/04/19 16:07:55 DEBUG : EXTRACT: config in: state="*all-set,0,false", result="--my key--"
2024/04/19 16:07:55 DEBUG : EXTRACT: config out: out=&{State:*all,1,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:55 DEBUG : EXTRACT: config in: state="*all,1,false", result=""
2024/04/19 16:07:55 DEBUG : EXTRACT: config out: out=&{State:*all-set,1,false Option:--OAuth-- OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:55 DEBUG : EXTRACT: config: reading config parameter "client_secret"
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a string value. Press Enter for the default (--OAuth Secret--).
client_secret>

2024/04/19 16:07:57 DEBUG : EXTRACT: config in: state="*all-set,1,false", result="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"
2024/04/19 16:07:57 DEBUG : EXTRACT: config out: out=&{State:*all,2,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:57 DEBUG : EXTRACT: config in: state="*all,2,false", result=""
2024/04/19 16:07:57 DEBUG : EXTRACT: config out: out=&{State:*all,3,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:57 DEBUG : EXTRACT: config in: state="*all,3,false", result=""
2024/04/19 16:07:57 DEBUG : EXTRACT: config out: out=&{State:*all,4,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:57 DEBUG : EXTRACT: config in: state="*all,4,false", result=""
2024/04/19 16:07:57 DEBUG : EXTRACT: config out: out=&{State:*all,5,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:57 DEBUG : EXTRACT: config in: state="*all,5,false", result=""
2024/04/19 16:07:57 DEBUG : EXTRACT: config out: out=&{State:*all-set,5,false Option:drive OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:07:57 DEBUG : EXTRACT: config: reading config parameter "scope"
Option scope.
Comma separated list of scopes 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

2024/04/19 16:08:00 DEBUG : EXTRACT: config in: state="*all-set,5,false", result="drive"
2024/04/19 16:08:00 DEBUG : EXTRACT: config out: out=&{State:*all,6,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:00 DEBUG : EXTRACT: config in: state="*all,6,false", result=""
2024/04/19 16:08:00 DEBUG : EXTRACT: config out: out=&{State:*all,7,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:00 DEBUG : EXTRACT: config in: state="*all,7,false", result=""
2024/04/19 16:08:00 DEBUG : EXTRACT: config out: out=&{State:*all-set,7,false Option:C:\Users\Administrator\Downloads\rclone\rclone-file-migration-c4ee567ab40j.json OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:00 DEBUG : EXTRACT: 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 string value. Press Enter for the default (C:\Users\Administrator\Downloads\rclone\rclone-file-migration-c4ee567ab40j.json).
service_account_file>

2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all-set,7,false", result="C:\\Users\\Administrator\\Downloads\\rclone\\rclone-file-migration-c4ee567ab40j.json"
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,8,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,8,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,9,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,9,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,10,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,10,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,11,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,11,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,12,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,12,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,13,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,13,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,14,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,14,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,15,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,15,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,16,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,16,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,17,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,17,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,18,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,18,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,19,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,19,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,20,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,20,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,21,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,21,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,22,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,22,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,23,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,23,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,24,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,24,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,25,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,25,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,26,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,26,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,27,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,27,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,28,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,28,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,29,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,29,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,30,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,30,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,31,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,31,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,32,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,32,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,33,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,33,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,34,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,34,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,35,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,35,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,36,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,36,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,37,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,37,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,38,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,38,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,39,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,39,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,40,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,40,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,41,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,41,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,42,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,42,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,43,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,43,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,44,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,44,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,45,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,45,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,46,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,46,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,47,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,47,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,48,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,48,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,49,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,49,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all,50,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config in: state="*all,50,false", result=""
2024/04/19 16:08:02 DEBUG : EXTRACT: config out: out=&{State:*all-advanced Option:false OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:02 DEBUG : EXTRACT: config: reading config parameter "config_fs_advanced"
Edit advanced config?
y) Yes
n) No (default)
y/n>

2024/04/19 16:08:18 DEBUG : EXTRACT: config in: state="*all-advanced", result="false"
2024/04/19 16:08:18 DEBUG : EXTRACT: config out: out=&{State:*postconfig Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:18 DEBUG : EXTRACT: config in: state="*postconfig", result=""
2024/04/19 16:08:18 DEBUG : EXTRACT: config in: state="", result=""
2024/04/19 16:08:18 DEBUG : EXTRACT: config out: out=&{State:teamdrive Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:18 DEBUG : EXTRACT: config out: out=&{State:teamdrive Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:18 DEBUG : EXTRACT: config in: state="teamdrive", result=""
2024/04/19 16:08:18 DEBUG : EXTRACT: config out: out=&{State:teamdrive_ok Option:false OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:18 DEBUG : EXTRACT: config: reading config parameter "config_change_team_drive"
Configure this as a Shared Drive (Team Drive)?

y) Yes
n) No (default)
y/n> y

2024/04/19 16:08:30 DEBUG : EXTRACT: config in: state="teamdrive_ok", result="true"
2024/04/19 16:08:30 DEBUG : EXTRACT: config out: out=&{State:teamdrive_config Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2024/04/19 16:08:30 DEBUG : EXTRACT: config in: state="teamdrive_config", result=""
2024/04/19 16:08:31 DEBUG : EXTRACT: config out: out=<nil>, err=listing Team Drives failed: googleapi: Error 404: File not found: ., notFound
Error: listing Team Drives failed: googleapi: Error 404: File not found: ., notFound
Usage:
  rclone config [flags]
  rclone config [command]

Available Commands:
  create      Create a new remote with name, type and options.
  delete      Delete an existing remote.
  disconnect  Disconnects user from remote
  dump        Dump the config file as JSON.
  edit        Enter an interactive configuration session.
  file        Show path of configuration file in use.
  password    Update password in an existing remote.
  paths       Show paths used for configuration, cache, temp etc.
  providers   List in JSON format all the providers and options.
  reconnect   Re-authenticates user with remote.
  redacted    Print redacted (decrypted) config file, or the redacted config for a single remote.
  show        Print (decrypted) config file, or the config for a single remote.
  touch       Ensure configuration file exists.
  update      Update options in an existing remote.
  userinfo    Prints info about logged in user of remote.

Flags:
  -h, --help   help for config

Use "rclone [command] --help" for more information about a command.
Use "rclone help flags" for to see the global flags.
Use "rclone help backends" for a list of supported services.

2024/04/19 16:08:31 Fatal error: listing Team Drives failed: googleapi: Error 404: File not found: ., notFound

welcome to the forum,

this is my service account for gdrive.
notice that the client id+secret is not used.
the client id is embeded into the .json file.

[gdrivesa]
type = drive
scope = drive
service_account_file = C:\data\rclone\scripts\rr\other\gdrive.sa\test02-09420-6f8144bb217f.json

right! I'll try that now, thank you johothehumanmonkey :slightly_smiling_face: :speak_no_evil:

also, note that the rclone config file is plain text, unless you explicitly encrypted it.
so, can simply edit the config file

yep, done that and I still get the same error as before.

[EXTRACT]
type = drive
scope = drive
service_account_file = C:\Users\Administrator\Downloads\rclone\rclone-file-migration-c4ee567ab40j.json

how do you know your service file is good, what other tools have you tested?

just to clarify, do I have to add the service account as a manager of the shared drive?

I've found the service account bit in the setup, I'll check it out

no, I'm following the instructions but they're out of date in the following:

allow API access

2. Allowing API access to example.com Google Drive
Go to example.com's admin console
Go into "Security" (or use the search bar)
Select "Show more" and then "Advanced settings"
Select "Manage API client access" in the "Authentication" section
In the "Client Name" field enter the service account's "Client ID" - this can be found in the Developer Console under "IAM & Admin" -> "Service Accounts", then "View Client ID" for the newly created service account. It is a ~21 character numerical string.
In the next field, "One or More API Scopes", enter https://www.googleapis.com/auth/drive to grant access to Google Drive specifically.

here's my Admin console:

I'm going to try to work around it without the service account

well, it's working, but incredibly slowly.

good, that it is working, but no idea what it is?
need to post the redacted config and debug log.