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.
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Це має бути стандартний прямий HTTP/HTTPS-проксі, і він не повинен використовувати 127.0.0.1.
Створення індексів бази даних
Виконайте це один раз, перш ніж користувачі прив’яжуть свої облікові записи Dropbox. Індекси, які використовує синхронізація з Dropbox, не створюються автоматично, тож без них кожен пошук під час синхронізації сканує всю колекцію. Користувачі Toolkit: виконайтеbin/mongo. Користувачі Docker Compose: виконайте docker compose exec mongo mongosh sharelatex. Потім вставте:
dropboxEntities з tools/migrations: 20220825160708_recreate_dropboxEntities видаляє колекцію, а разом із нею й стан синхронізації всіх користувачів.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, яка ще невідома Overleaf, зіставляється з проєктом за назвою, тому користувачеві, проєкти якого мають однакові назви, буде запропоновано спершу їх перейменувати. Назви порівнюються без урахування регістру, і заархівовані проєкти та проєкти в кошику теж враховуються.
- Обліковий запис Dropbox можна прив’язати лише до одного облікового запису Overleaf.
Чому прив'язку облікового запису Dropbox було скасовано?
Чому прив'язку облікового запису Dropbox було скасовано?
Чому деякі папки проєктів пронумеровано, наприклад «Thesis (1)»?
Чому деякі папки проєктів пронумеровано, наприклад «Thesis (1)»?
Що станеться, якщо видалити папку проєкту в Dropbox?
Що станеться, якщо видалити папку проєкту в Dropbox?
- Якщо жоден інший проєкт не має назви цієї папки, проєкт позначається як видалений в Overleaf. Його файли та історія зберігаються.
- Якщо цю назву мають кілька проєктів, Overleaf не може визначити, якому з них належала папка. Він скасовує прив’язку облікового запису Dropbox і показує сповіщення з проханням перейменувати проєкти. Дайте проєктам різні назви, перш ніж видаляти їхні папки в Dropbox.
- Пронумерована папка, наприклад «Thesis (1)», не збігається з жодною назвою проєкту, тож її видалення не змінює проєкт в Overleaf. Натисніть sync this project now у діалозі Dropbox у редакторі, щоб знову надіслати проєкт у Dropbox.
Що станеться в Dropbox, якщо видалити проєкт в Overleaf?
Що станеться в Dropbox, якщо видалити проєкт в Overleaf?
Що відбувається зі змінами в Dropbox, поки проєкт заархівовано або переміщено до кошика?
Що відбувається зі змінами в Dropbox, поки проєкт заархівовано або переміщено до кошика?
Чому посилання на Dropbox у редакторі відкриває головну сторінку Dropbox?
Чому посилання на Dropbox у редакторі відкриває головну сторінку Dropbox?
Apps/<app folder>/<project> на dropbox.com, як в Overleaf Cloud. Коли Dropbox показує свою папку Apps під перекладеною назвою, наприклад 应用 китайською, посилання не знаходить папку, і Dropbox натомість відкриває свою головну сторінку. Відкрийте папку проєкту з перекладеної папки Apps у Dropbox.Чому деяких файлів проєкту немає в Dropbox?
Чому деяких файлів проєкту немає в Dropbox?

