Эта функция разработана в ayaka-notes/ayakaleaf-pro. Она доступна начиная с версии v6.4.0 и всё ещё находится в статусе бета. Если у вас возникнут проблемы, пожалуйста, сообщите нам.
Apps/<your Dropbox app>/, изменения в Overleaf отправляются в Dropbox, а изменения, внесённые в Dropbox, возвращаются в Overleaf.
Настройка синхронизации с Dropbox
Создайте приложение в Dropbox App Console, войдя под учётной записью Dropbox, которой будет принадлежать приложение:- Нажмите 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. Проекты каждого пользователя появляются в папкеApps/<name of your app>/в его Dropbox, и именно это имя указывается ниже в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, снять отметку с которых нельзя. Не отмечайте другие разрешения. - Нажмите Submit на панели внизу вкладки Permissions. Без нажатия Submit разрешения не сохраняются, и Dropbox отказывается синхронизировать файлы пользователей, которые привязывают свою учётную запись.

Dropbox App Console: разрешения, которые нужно отметить и сохранить кнопкой Submit
- На вкладке Settings в разделе OAuth 2 введите
${OVERLEAF_SITE_URL}/user/dropbox/oauth/callbackв поле Redirect URIs, затем нажмите Add. Просто ввести URI недостаточно: он сохраняется только после того, как появится в списке над полем.

Dropbox App Console: введите Redirect URI и нажмите Add
- На вкладке Settings в разделе Webhooks введите
${OVERLEAF_SITE_URL}/dropbox/webhookв поле Webhook URIs, затем также нажмите 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 сообщает Overleaf об изменениях в Dropbox через webhook, поэтому они появляются в Overleaf в течение нескольких секунд. Webhook направляется на адрес вашего сайта,${OVERLEAF_SITE_URL}/dropbox/webhook, дополнительный порт не нужен, но Dropbox должен иметь к нему доступ из интернета. Когда вы добавляете его в App Console, Dropbox сразу же его проверяет.
Без webhook, например на сервере, недоступном для Dropbox, изменения в Overleaf по-прежнему отправляются в Dropbox, но изменения в Dropbox возвращаются только тогда, когда пользователь нажимает sync this project now в диалоге Dropbox в редакторе.
Как работает синхронизация
- Привязка: когда пользователь привязывает свою учётную запись Dropbox, принадлежащие ему проекты отправляются в Dropbox. Проекты, к которым ему предоставлен доступ, появляются в Dropbox при их следующем изменении.
- Из Overleaf в Dropbox: новые файлы, переименования, перемещения, удаления и переименования проектов отправляются сразу. Правки в редакторе отправляются после того, как Overleaf сохранит их в своё хранилище, через несколько минут после того, как все покинут проект. Чтобы отправить их раньше, нажмите sync this project now в диалоге Dropbox в редакторе (не чаще раза в минуту).
- Из 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 была отвязана?
Ответ: Overleaf отвязывает учётную запись Dropbox, когда Dropbox отклоняет её токен (например, после того как пользователь удалил приложение в Dropbox), когда Dropbox заполнен или когда Dropbox заблокировал учётную запись. После устранения проблемы пользователь может привязать её снова.
Можно ли переименовать папку проекта в Dropbox?
Можно ли переименовать папку проекта в Dropbox?
Ответ: Пожалуйста, переименуйте проект в Overleaf. Для Overleaf переименование папки в Dropbox означает удаление папки проекта и создание новой, поэтому старый проект помечается как удалённый, а из файлов создаётся новый проект.

