此功能由 ayaka-notes/ayakaleaf-pro 开发。它自 v6.4.0 起引入,目前仍处于 beta 阶段。如果你遇到任何问题,我们需要你的反馈。
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:选择 App folder,而不是 Full Dropbox。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 会立即调用它进行检查,因此 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 中添加它时,Dropbox 会立即对其进行检查。
如果没有 webhook(例如服务器无法被 Dropbox 访问),Overleaf 中的更改仍会发送到 Dropbox,但 Dropbox 中的更改只有在用户点击编辑器 Dropbox 对话框中的 sync this project now 时才会同步回来。
同步的工作原理
- 关联:用户关联自己的 Dropbox 账户后,其拥有的项目会被发送到 Dropbox。与其共享的项目会在下一次发生更改时出现在 Dropbox 中。
- Overleaf 到 Dropbox:新文件、重命名、移动、删除以及项目重命名会立即发送。编辑器中的编辑会在 Overleaf 将其保存到存储后发送,即所有人离开项目几分钟后。如需更早发送,请点击编辑器 Dropbox 对话框中的 sync this project now(每分钟一次)。
- Dropbox 到 Overleaf:项目文件夹中新增和更改的文件、新建的文件夹以及删除操作都会应用到项目中。在应用文件夹顶层新建的文件夹会成为一个新项目。在 Dropbox 中删除项目文件夹会在 Overleaf 中将该项目标记为已删除。
- 冲突:当同一文件同时在两处发生更改时,以最后一次更改为准。Dropbox 可能会将另一个版本保留为 conflicted copy。
- 协作者:关联了 Dropbox 的协作者会获得与其共享的项目。只读查看者和审阅者也会获得该项目,但他们在 Dropbox 中所做的更改不会同步回 Overleaf。
- 忽略的文件:Overleaf 不同步的文件,例如编译输出(
.aux、.log……)、.DS_Store或 Python 虚拟环境,只会保留在 Dropbox 中。
Q&A
为什么用户无法关联自己的 Dropbox 账户?
为什么用户无法关联自己的 Dropbox 账户?
- 项目按名称与 Dropbox 文件夹匹配,因此如果用户有两个同名项目,系统会要求其先重命名其中一个。
- 一个 Dropbox 账户只能关联到一个 Overleaf 账户。
为什么 Dropbox 账户被取消关联了?
为什么 Dropbox 账户被取消关联了?
回答:当 Dropbox 拒绝其令牌(例如用户在 Dropbox 中删除了该应用后)、Dropbox 空间已满或 Dropbox 暂停了该账户时,Overleaf 会取消关联该 Dropbox 账户。问题解决后,用户可以重新关联。
我可以在 Dropbox 中重命名项目文件夹吗?
我可以在 Dropbox 中重命名项目文件夹吗?
回答:请改为在 Overleaf 中重命名项目。对 Overleaf 而言,在 Dropbox 中重命名文件夹相当于删除项目文件夹并新建一个文件夹,因此旧项目会被标记为已删除,并根据这些文件创建一个新项目。

