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

时间:2015-07-12 16:38:50

标签: backup google-docs-api duplicity-backup

我一直在尝试将双重备份用于备份到Google云端硬盘。但看起来它仍然使用旧的客户端API。

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

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

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

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

1 个答案:

答案 0 :(得分:14)

现在谷歌已经开始强迫客户使用OAuth,使用谷歌硬盘作为备份目标实际上已经非常混乱。我发现an excellent blog post让我走过它。突出的步骤是:

安装PyDrive

PyDrive是允许Duplicity使用OAuth访问云端硬盘的库。

pip install pydrive

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

创建API令牌

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

Choosing duplicity project

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

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

Creating credential

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

Credential screen

配置重复

呼。是时候实际配置程序了。将以下内容粘贴到文件中,将客户端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)。

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

GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...>

或者如果你正在使用Duply,你可以在Duply配置文件中export这个变量:

export GOOGLE_DRIVE_SETTINGS=gdrive

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

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