DROPBOX_ENABLED: "true" の場合にのみ起動します。
- web(
dropboxモジュール):リンク、プロジェクトの Dropbox ダイアログ、Dropbox が呼び出す Webhook。 - third-party-datastore:Pod 内の独立したサービスで、Dropbox に送信する変更や Dropbox から取得する変更のキューを処理します。
- document-updater:Dropbox が有効な場合、全員がプロジェクトを離れてから数分後に、エディターでの変更をバックグラウンドで MongoDB に書き込みます。その時点で初めて変更が Dropbox に送られます。
設定
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" と、Git 連携 の git-bridge StatefulSet が用意されている必要があります。これらがないと、アカウント設定にプロジェクト同期のセクションが表示されません。2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD は、MongoDB 内のユーザーの Dropbox トークンを暗号化します。すべてのレプリカで同じ値を使用する必要があり、後から変更するとすべてのユーザーが Dropbox を再リンクすることになります。3
データベースのインデックスを作成する
データベースのインデックスを作成する のインデックス作成コマンドを、レプリカセットのプライマリで 1 回実行します。
4
適用して再起動する
third-party-datastore.log は、DROPBOX_ENABLED が "true" の場合にのみ存在します。5
Webhook をインターネットに公開する
Dropbox はインターネットから その後、Toolkit のページの説明に従って Dropbox App Console で Webhook を追加します。
${OVERLEAF_SITE_URL}/dropbox/webhook に到達できる必要があります。Ingress やロードバランサーが外部から一部のパスやネットワークしか許可していない場合は、このパスを許可してください。Dropbox が呼び出すパスはこれだけです。クラスターの外部から確認します。複数のレプリカ
共有のDROPBOX_TOKEN_CIPHER_PASSWORD 以外に追加の作業は不要です。
- Webhook はどのレプリカに届いても構いません。変更を Redis のキューに入れるだけです。
- すべてのレプリカが third-party-datastore を実行し、それぞれが共有キューを処理します。ユーザーのキューは Redis のロックで取得されるため、特定のユーザーの変更を送信または取得するのは一度に 1 つのレプリカだけです。
- すべてのレプリカの document-updater が、アイドル状態のプロジェクトをバックグラウンドで書き込みます。各プロジェクトは Redis の共有リストから取り出されるため、書き込みは 1 回だけです。

