7

我一直在试图让双重备份到谷歌驱动器。但看起来它仍在使用旧的客户端 API。

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

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

BackendException: GOOGLE_DRIVE_ACCOUNT_KEY environment variable not set. Please read the manpage to fix.

有没有人设置了重复使用 Google Drive 并知道如何做到这一点?

4

1 回答 1

15

现在 Google 已经开始强制客户使用 OAuth,使用 Google Drive 作为备份目标实际上变得非常混乱。我找到了一篇出色的博客文章,引导我完成了它。主要步骤是:

安装 PyDrive

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

pip install pydrive

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

创建 API 令牌

导航到Google Developer Console并登录。创建一个项目并从顶部工具栏的下拉菜单中选择它。

选择重复项目

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

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

创建凭证

创建凭据后,单击它以查看详细信息。将显示您的客户 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

(我使用的是优秀的Duply前端,所以我将它保存为~/.duply/<server name>/gdrive)。

Duplicity 需要在GOOGLE_DRIVE_SETTINGS环境变量中给出这个文件的名称。所以你可以像这样调用重复:

GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...>

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

export GOOGLE_DRIVE_SETTINGS=gdrive

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

在这一点上,您应该一切顺利,并且 Duplicity 应该正常运行。祝你好运!

于 2015-12-05T04:34:57.350 回答