この機能は ayaka-notes/ayakaleaf-pro によって開発されたものです。v6.4.0 以降で導入されています。まだベータ版のため、問題があればぜひフィードバックをお寄せください。
Apps/<your Dropbox app>/ 内のフォルダーとして表示され、Overleaf での変更は Dropbox に送信され、Dropbox で行った変更は Overleaf に反映されます。
Dropbox 同期のセットアップ
アプリを所有する Dropbox アカウントでサインインし、Dropbox App Console でアプリを作成します。- Create app をクリックし、ページに入力します。
- 1. Choose an API: Scoped access を選択します。
- 2. Choose the type of access you need: Full Dropbox ではなく App folder を選択します。Overleaf はアプリのフォルダー内でのみ同期を行います。
- 3. Name your app: 名前(例:
Overleaf)を入力します。名前は Dropbox 上で一意である必要があります。各ユーザーのプロジェクトはその Dropbox 内のApps/<name of your app>/に表示され、この名前が後述のDROPBOX_APP_NAMEになります。 - Create app をクリックします。アプリが Settings タブで開きます。
- Permissions タブの Files and folders で、
files.metadata.write、files.content.write、files.content.readにチェックを入れます。account_info.readとfiles.metadata.readは同時にチェックされ、チェックを外すことはできません。その他の権限にはチェックを入れないでください。 - Permissions タブ下部のバーにある Submit をクリックします。Submit をクリックしないと権限は保存されず、アカウントを連携したユーザーのファイル同期を Dropbox が拒否します。

Dropbox App Console: チェックする権限と Submit による保存
- Settings タブの OAuth 2 で、Redirect URIs に
${OVERLEAF_SITE_URL}/user/dropbox/oauth/callbackを入力し、Add をクリックします。URI を入力するだけでは不十分で、入力欄の上のリストに表示されて初めて保存されます。

Dropbox App Console: リダイレクト URI を入力して Add をクリック
- Settings タブの Webhooks で、Webhook URIs に
${OVERLEAF_SITE_URL}/dropbox/webhookを入力し、同様に Add をクリックします。Dropbox はすぐにこの URI を呼び出して確認するため、Overleaf が以下の設定で起動済みで、インターネットから到達可能である必要があります(Webhook を参照)。確認に成功すると、ステータスが Enabled と表示されます。
config/variables.env
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808。プロキシは標準的な HTTP/HTTPS フォワードプロキシである必要があり、127.0.0.1 を使用してはいけません。
Webhook
Dropbox は Webhook を使って Dropbox での変更を Overleaf に通知するため、変更は数秒以内に Overleaf に反映されます。Webhook はサイトのアドレス${OVERLEAF_SITE_URL}/dropbox/webhook に送られるので追加のポートは不要ですが、Dropbox がインターネットからこのアドレスに到達できる必要があります。App Console で Webhook を追加すると、Dropbox はすぐにそれを確認します。
Webhook がない場合(たとえば Dropbox から到達できないサーバーの場合)でも、Overleaf での変更は Dropbox に送信されます。ただし、Dropbox での変更が Overleaf に反映されるのは、ユーザーがエディターの Dropbox ダイアログで sync this project now をクリックしたときのみです。
同期の仕組み
- 連携: ユーザーが Dropbox アカウントを連携すると、そのユーザーが所有するプロジェクトが Dropbox に送信されます。そのユーザーと共有されているプロジェクトは、次に変更があったときに Dropbox に表示されます。
- Overleaf から Dropbox へ: 新しいファイル、名前の変更、移動、削除、プロジェクト名の変更はすぐに送信されます。エディターでの編集は、全員がプロジェクトを離れてから数分後に Overleaf がストレージに保存した時点で送信されます。より早く送信するには、エディターの Dropbox ダイアログで sync this project now をクリックしてください(1 分に 1 回まで)。
- Dropbox から Overleaf へ: プロジェクトフォルダー内の新規ファイルや変更されたファイル、新しいフォルダー、削除はプロジェクトに反映されます。アプリフォルダーの最上位に作成した新しいフォルダーは、新しいプロジェクトになります。Dropbox でプロジェクトフォルダーを削除すると、Overleaf でそのプロジェクトは削除済みとしてマークされます。
- コンフリクト: 同じファイルが両方の場所で同時に変更された場合は、最後の変更が優先されます。Dropbox がもう一方のバージョンを conflicted copy として保持する場合があります。
- 共同編集者: Dropbox を連携した共同編集者は、自分と共有されているプロジェクトを受け取ります。閲覧のみの共同編集者とレビュアーもプロジェクトを受け取りますが、Dropbox での変更は Overleaf に同期されません。
- 無視されるファイル: ビルド出力(
.aux、.logなど)、.DS_Store、Python の仮想環境など、Overleaf が同期しないファイルは Dropbox にのみ残ります。
Q&A
ユーザーが Dropbox アカウントを連携できないのはなぜですか?
ユーザーが Dropbox アカウントを連携できないのはなぜですか?
- プロジェクトと Dropbox フォルダーは名前で対応付けられるため、同じ名前のプロジェクトを 2 つ持っているユーザーは、まずそのうちの 1 つの名前を変更するよう求められます。
- 1 つの Dropbox アカウントは、1 つの Overleaf アカウントにしか連携できません。
Dropbox アカウントの連携が解除されたのはなぜですか?
Dropbox アカウントの連携が解除されたのはなぜですか?
回答: Overleaf は、Dropbox がトークンを拒否した場合(ユーザーが Dropbox でアプリを削除した後など)、Dropbox の容量がいっぱいになった場合、または Dropbox がアカウントを停止した場合に、Dropbox アカウントの連携を解除します。問題が解決すれば、ユーザーは再度連携できます。
Dropbox でプロジェクトフォルダーの名前を変更できますか?
Dropbox でプロジェクトフォルダーの名前を変更できますか?
回答: 代わりに Overleaf でプロジェクト名を変更してください。Overleaf にとって、Dropbox でフォルダー名を変更することは、プロジェクトフォルダーを削除して新しいフォルダーを作成することと同じです。そのため、元のプロジェクトは削除済みとしてマークされ、ファイルから新しいプロジェクトが作成されます。

