Цю функцію розроблено в 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 уже має працювати з наведеними нижче налаштуваннями та бути доступним з інтернету (див. Вебхук). Після успішної перевірки його стан зміниться на Enabled.
config/variables.env
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Це має бути стандартний прямий HTTP/HTTPS-проксі, і він не повинен використовувати 127.0.0.1.
Webhook
Dropbox повідомляє Overleaf про зміни в Dropbox через вебхук, тож вони з’являються в Overleaf за лічені секунди. Вебхук надходить на адресу вашого сайту,${OVERLEAF_SITE_URL}/dropbox/webhook, додатковий порт не потрібен, але Dropbox має бути здатен звернутися до нього з інтернету. Коли ви додаєте його в App Console, Dropbox одразу його перевіряє.
Без вебхука, наприклад на сервері, до якого 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 призупинив обліковий запис. Користувач може прив’язати його знову, щойно проблему буде розв’язано.

