我正在尝试使用口是心非的方式从我的 Linux 桌面备份我的文件。
我阅读了这个问题的答案How do I backup to googledrive using duplicity? 从 2015 年开始,但它可能已经过时了?
从口是心非的文档中,https://duplicity.gitlab.io/stable/duplicity.1.html,我知道我必须:
- 转到https://console.developers.google.com并创建一个项目,我就是这样做的。名称:mybackup-12345(我为这个问题更改了名称)
- 创建 oauth 访问权限,并在 json 文件中获取机密。我的json文件内容如下(/home/myuser/backups/google_client_secret_json_file.json):
{
"installed":{
"client_id":"XXXXXXXX.apps.googleusercontent.com",
"project_id":"mybackup-12345","auth_uri":"https://accounts.google.com/o/oauth2/auth",
"token_uri":"https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs",
"client_secret":"XXXXXXX",
"redirect_uris":["http://localhost"]
}
}
export GOOGLE_SERVICE_JSON_FILE=/home/myuser/backups/google_client_secret_json_file.json
export GOOGLE_CREDENTIALS_FILE=/home/myuser/backups/google_credentials_file
(这个文件还不存在,我认为口是心非会在第一次登录后创建它)export GOOGLE_SERVICE_ACCOUNT_URL="[email protected]"
- 最后发动口是心非:
duplicity /home/myuser/Documents gdrive://${GOOGLE_SERVICE_ACCOUNT_URL}/backups/documents?myDriveFolderID=root
我之前尝试过其他值,但我想这应该离我应该做的不远。但我现在得到这个(python)错误:
google.auth.exceptions.MalformedError: Service account info was not in the expected format, missing fields client_email, token_uri.
根据您的
google\_client\_secret\_json\_file.json
文件,这不包含所需的 json 对象,并且如错误google.auth.exceptions.MalformedError: Service account info was not in the expected format, missing fields client\_email, token\_uri.
You will need to generated a Service Account key 相反,按照此参考文章进行解释。服务帐户凭据的示例格式: