What is the problem you are having with rclone?
Trying to run Rclone on an Electron app.
I start the RC server alongside Electron, however when I tried to copy a folder I got an error that it was unable to locate my credentials.json for my service account.
FYI I'm a complete beginner when it comes to coding (Only done some stuff on Python), Electron and JS, so maybe my approach here is completely wrong ![]()
Run the command 'rclone version' and share the full output of the command.
rclone v1.56.2
- os/version: Microsoft Windows 10 IoT Enterprise LTSC 2021 2009 (64 bit)
- os/kernel: 10.0.19044.1526 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.16.8
- go/linking: dynamic
- go/tags: cmount
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 rcd --rc-no-auth
rclone rc sync/copy srcFs="remote:/Test" dstFs="E:/rclone/Test" createEmptySrcDirs=True
All these commands are run from the Main process of Electron however
import { execFile } from 'child_process';
execFile(
rcloneExe, // The path to the local rclone.exe, defined previously
['rcd', '--rc-no-auth', '-vv'],
(error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
}
);
// A handle that I can call on Electron's renderer process later on
ipcMain.handle('rclone-test', async () => {
execFile(
rcloneExe,
[
'rc',
'sync/copy',
'srcFs=remote:/Test',
'dstFs=E:/rclone/Test',
'createEmptySrcDirs=True',
],
(error, stdout, stderr) => {
if (error) {
console.log(error);
throw error;
}
}
);
});
The rclone config contents with secrets removed.
[remote]
type = drive
client_id = *
scope = drive
client_secret = *
token = *
root_folder_id =
team_drive = *
service_account_file = credentials.json // Located right next to the exe and this config
[remote-crypt]
type = crypt
remote = remote:
directory_name_encryption = false
password = *
password2 = *
A log from the command with the -vv flag
Error: Command failed: D:\Projects\electron-app\assets\rclone\rclone.exe rc sync/copy srcFs=remote:/Test dstFs=E:/rclone/Test createEmptySrcDirs=True -vv
2022/03/02 10:41:38 DEBUG : rclone: Version "v1.56.2" starting with parameters ["D:\\Projects\\electron-app\\assets\\rclone\\rclone.exe" "rc" "sync/copy" "srcFs=remote:/Test" "dstFs=E:/rclone/Test" "createEmptySrcDirs=True" "-vv"]
2022/03/02 10:41:38 DEBUG : 4 go routines active
2022/03/02 10:41:38 Failed to rc: Failed to read rc response: 500 Internal Server Error: {
"error": "drive: failed when making oauth client: error opening service account credentials file: open credentials.json: The system cannot find the file specified.",
"input": {
"createEmptySrcDirs": "True",
"dstFs": "E:/rclone/Test",
"srcFs": "remote:/Test"
},
"path": "sync/copy",
"status": 500
}
at ChildProcess.exithandler (node:child_process:406:12)
at ChildProcess.emit (node:events:394:28)
at ChildProcess.emit (node:domain:475:12)
at maybeClose (node:internal/child_process:1064:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5) {
killed: false,
code: 1,
signal: null,
cmd: 'D:\\Projects\\electron-app\\assets\\rclone\\rclone.exe rc sync/copy srcFs=remote:/Test dstFs=E:/rclone/Test createEmptySrcDirs=True -vv'
}