7

Googleドライブにバックアップするために重複を取得しようとしています。しかし、まだ古いクライアント API を使用しているようです。

新しい API をサポートする必要があると言っているスレッドを見つけましたが、それを機能させる方法についての詳細はあまりありません。

duplicity 7.0.3 をコンパイルして使用するところまで行きましたが、次のエラーが発生しました。

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

Googleドライブで動作するように二重化を設定し、その方法を知っている人はいますか?

4

1 に答える 1

15

Google がクライアントに OAuth の使用を強制し始めた今、バックアップ ターゲットとして Google ドライブを使用することは、実際には非常に混乱しています。それを説明する素晴らしいブログ投稿を見つけました。主な手順は次のとおりです。

PyDrive をインストールする

PyDrive は、Duplicity が OAuth を使用してドライブにアクセスできるようにするライブラリです。

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)。

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 に答える