Deze functie is ontwikkeld door ayaka-notes/ayakaleaf-pro. Ze is geïntroduceerd in v6.4.0 en latere versies. Ze bevindt zich nog in de bètafase. We horen graag je feedback als je problemen hebt.
Apps/<your Dropbox app>/, worden wijzigingen in Overleaf naar Dropbox gestuurd en komen wijzigingen in Dropbox terug in Overleaf.
Dropbox-synchronisatie instellen
Maak een app aan in de Dropbox App Console, aangemeld met het Dropbox-account dat eigenaar van de app wordt:- Klik op Create app en vul de pagina in:
- 1. Choose an API: selecteer Scoped access.
- 2. Choose the type of access you need: selecteer App folder, niet Full Dropbox. Overleaf synchroniseert alleen binnen de map van de app.
- 3. Name your app: voer een naam in, bijvoorbeeld
Overleaf. Deze moet uniek zijn op Dropbox. De projecten van elke gebruiker verschijnen inApps/<name of your app>/in zijn Dropbox, en deze naam isDROPBOX_APP_NAMEhieronder. - Klik op Create app. De app opent op het tabblad Settings.
- Vink op het tabblad Permissions onder Files and folders
files.metadata.write,files.content.writeenfiles.content.readaan.account_info.readenfiles.metadata.readworden daarmee ook aangevinkt en kunnen niet worden uitgevinkt. Vink geen andere rechten aan. - Klik op Submit in de balk onderaan het tabblad Permissions. Zonder Submit worden de rechten niet opgeslagen, en weigert Dropbox bestanden te synchroniseren voor de gebruikers die hun account koppelen.

Dropbox App Console: de aan te vinken rechten, opgeslagen met Submit
- Voer op het tabblad Settings onder OAuth 2
${OVERLEAF_SITE_URL}/user/dropbox/oauth/callbackin bij Redirect URIs en klik op Add. Alleen de URI typen is niet genoeg: deze wordt pas opgeslagen zodra hij in de lijst boven het veld verschijnt.

Dropbox App Console: voer de redirect-URI in en klik op Add
- Voer op het tabblad Settings onder Webhooks
${OVERLEAF_SITE_URL}/dropbox/webhookin bij Webhook URIs en klik ook hier op Add. Dropbox roept de URI meteen aan om hem te controleren, dus Overleaf moet al draaien met de onderstaande instellingen en bereikbaar zijn vanaf het internet (zie Webhook). De status toont Enabled zodra de controle is geslaagd.
config/variables.env
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Dit moet een standaard HTTP/HTTPS-forwardproxy zijn en mag geen 127.0.0.1 gebruiken.
Webhook
Dropbox meldt wijzigingen in Dropbox aan Overleaf via een webhook, zodat ze binnen enkele seconden in Overleaf verschijnen. De webhook gaat naar het adres van je site,${OVERLEAF_SITE_URL}/dropbox/webhook. Er is geen extra poort nodig, maar Dropbox moet hem vanaf het internet kunnen bereiken. Wanneer je hem toevoegt in de App Console, controleert Dropbox hem meteen.
Zonder webhook, bijvoorbeeld op een server die Dropbox niet kan bereiken, worden wijzigingen in Overleaf nog steeds naar Dropbox gestuurd, maar komen wijzigingen in Dropbox pas terug wanneer een gebruiker op sync this project now klikt in het Dropbox-dialoogvenster van de editor.
Hoe synchroniseren werkt
- Koppelen: wanneer een gebruiker zijn Dropbox-account koppelt, worden de projecten waarvan hij eigenaar is naar Dropbox gestuurd. Projecten die met hem zijn gedeeld, verschijnen in Dropbox bij hun volgende wijziging.
- Overleaf naar Dropbox: nieuwe bestanden, hernoemingen, verplaatsingen, verwijderingen en hernoemde projecten worden meteen verstuurd. Bewerkingen in de editor worden verstuurd zodra Overleaf ze in zijn opslag bewaart, enkele minuten nadat iedereen het project heeft verlaten. Om ze eerder te versturen, klik je op sync this project now in het Dropbox-dialoogvenster van de editor (eenmaal per minuut).
- Dropbox naar Overleaf: nieuwe en gewijzigde bestanden, nieuwe mappen en verwijderingen in een projectmap worden op het project toegepast. Een nieuwe map op het hoogste niveau van de app-map wordt een nieuw project. Als je een projectmap in Dropbox verwijdert, wordt het project in Overleaf als verwijderd gemarkeerd.
- Conflicten: wanneer een bestand op beide plaatsen tegelijk wordt gewijzigd, wint de laatste wijziging. Dropbox kan de andere versie bewaren als conflicted copy.
- Medewerkers: medewerkers die hun Dropbox koppelen, krijgen de projecten die met hen zijn gedeeld. Kijkers met alleen leesrechten en reviewers krijgen het project, maar hun wijzigingen in Dropbox worden niet teruggesynchroniseerd naar Overleaf.
- Genegeerde bestanden: bestanden die Overleaf niet synchroniseert, zoals build-uitvoer (
.aux,.log, …),.DS_Storeof virtuele Python-omgevingen, blijven alleen in Dropbox.
Q&A
Waarom kan een gebruiker zijn Dropbox-account niet koppelen?
Waarom kan een gebruiker zijn Dropbox-account niet koppelen?
- Projecten worden op naam aan Dropbox-mappen gekoppeld, dus een gebruiker met twee projecten met dezelfde naam wordt gevraagd eerst een ervan te hernoemen.
- Een Dropbox-account kan maar aan één Overleaf-account worden gekoppeld.
Waarom is de koppeling van een Dropbox-account verbroken?
Waarom is de koppeling van een Dropbox-account verbroken?
Antwoord: Overleaf verbreekt de koppeling van een Dropbox-account wanneer Dropbox het token weigert (bijvoorbeeld nadat de gebruiker de app in Dropbox heeft verwijderd), wanneer de Dropbox vol is of wanneer Dropbox het account heeft opgeschort. De gebruiker kan het account opnieuw koppelen zodra het probleem is opgelost.
Kan ik een projectmap in Dropbox hernoemen?
Kan ik een projectmap in Dropbox hernoemen?
Antwoord: Hernoem het project liever in Overleaf. Voor Overleaf betekent het hernoemen van de map in Dropbox dat de projectmap wordt verwijderd en een nieuwe wordt aangemaakt. Het oude project wordt dus als verwijderd gemarkeerd en er wordt een nieuw project gemaakt op basis van de bestanden.

