【问题标题】:How do I backup to google drive using duplicity?如何使用 duplicity 备份到 Google Drive?
【发布时间】:2015-07-12 16:38:49
【问题描述】:

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

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

我在编译和使用 duplicity 7.0.3 时得到了这个错误:

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

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

【问题讨论】:

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


    【解决方案1】:

    现在 Google 已经开始强制客户使用 OAuth,使用 Google Drive 作为备份目标实际上变得非常混乱。我找到了an excellent blog post,它引导我完成了它。主要步骤是:

    安装 PyDrive

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

    pip install pydrive
    

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

    创建 API 令牌

    导航到the 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/&lt;server name&gt;/gdrive)。

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

    GOOGLE_DRIVE_SETTINGS=gdrive duplicity <...>
    

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

    export GOOGLE_DRIVE_SETTINGS=gdrive
    

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

    此时您应该一切顺利,并且 Duplicity 应该正常运行。祝你好运!

    【讨论】:

    • 看起来很有希望,有机会一定会试一试。
    • 对我来说效果很好,
    • @alexw 仍然对我有用。确保从凭据下拉列表中选择“OAuth 客户端 ID”,而不是“服务帐户密钥”。
    • GOOGLE_DRIVE_SETTINGS=gdrive duplicity &lt;...&gt; ... 什么?这个命令到底应该做什么?我将凭据保存在 ~/.config/duplicity/credentials 中,那么我应该将此变量设置为什么?
    • 到底应该是什么&lt;server name&gt;,以及欺骗&lt;...&gt; 的参数。源文件夹很好,但是我应该使用的 url 是什么,应该以 pydrive:// 开头?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多