如何使用duplicity备份到Google驱动器?

Axe*_*ega 7 backup google-docs-api duplicity-backup

我一直在尝试将备份到备份到谷歌驱动器.但看起来它仍然使用旧的客户端API.

我发现一些线程说应该支持新的API,但没有太多关于如何使它工作的细节.

我得到了编译和使用duplicity 7.0.3,但后来我得到了这个错误:

BackendException: GOOGLE_DRIVE_ACCOUNT_KEY environment variable not set. Please read the manpage to fix.
Run Code Online (Sandbox Code Playgroud)

有没有人设置双重性来使用Google云端硬盘并知道如何执行此操作?

Geo*_*ard 14

既然谷歌已经开始强迫客户使用OAuth,那么使用谷歌硬盘作为备份目标实际上已经非常混乱.我发现了一篇很棒的博文,让我了解了它.突出的步骤是:

安装PyDrive

PyDrive是允许Duplicity使用OAuth访问Drive的库.

pip install pydrive
Run Code Online (Sandbox Code Playgroud)

应该足够了,或者你可以通过你的发行版包管理器.

创建API令牌

导航到Google Developer Console并登录.创建一个项目,然后从顶部工具栏的下拉列表中选择它.

选择双重项目

现在选择仪表板中的"启用API和服务"按钮,该按钮应该已经上拉,但如果没有,则在左侧的汉堡菜单中.

搜索并启用Drive API.启用后,您可以实际创建令牌.从左侧导航栏中选择"凭据",然后单击"添加凭据">"OAuth 2.0客户端ID".将应用程序类型设置为"其他".

创建凭据

创建凭据后,单击它以查看详细信息.将显示您的客户端ID和密码.记下它们.

凭证屏幕

配置Duplicity

呼.是时候实际配置程序了.将以下内容粘贴到文件中,将客户端ID和密码替换为上述控制台中的客户端ID和密码.

client_config_backend: settings  
client_config:  
   client_id: <your client ID>.apps.googleusercontent.com
   client_secret: <your client secret>
save_credentials: True
save_credentials_backend: file
save_credentials_file: gdrive.cache
get_refresh_token: True
Run Code Online (Sandbox Code Playgroud)

(我正在使用优秀的Duply前端,所以我保存了这个~/.duply/<server name>/gdrive).

需要在GOOGLE_DRIVE_SETTINGS环境变量中为Duplicity指定此文件的名称.所以你可以这样调用duplicity:

GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...>
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是Duply,则可以export在Duply配置文件中使用此变量:

export GOOGLE_DRIVE_SETTINGS=gdrive
Run Code Online (Sandbox Code Playgroud)

第一次运行Duplicity将开始OAuth流程; 您将获得一个访问链接,该链接将要求您在之前在控制台中创建的应用的权限,以访问您的云端硬盘帐户.接受,它将为您提供另一个身份验证令牌以粘贴回终端.授权信息将.cachegdrive设置文件一起保存在文件中.

此时你应该好好去,Duplicity应该正常行事.祝好运!