Apps/<your Dropbox app>/, les modifications effectuées dans Overleaf sont envoyées vers Dropbox, et celles effectuées dans Dropbox reviennent dans Overleaf.
Configurer la synchronisation Dropbox
Créez une application dans la Dropbox App Console, en étant connecté avec le compte Dropbox qui sera propriétaire de l’application :- Cliquez sur Create app, puis remplissez la page :
- 1. Choose an API : sélectionnez Scoped access.
- 2. Choose the type of access you need : sélectionnez App folder, et non Full Dropbox. Overleaf ne synchronise qu’à l’intérieur du dossier de l’application.
- 3. Name your app : saisissez un nom, par exemple
Overleaf. Il doit être unique sur Dropbox. Les projets de chaque utilisateur apparaissent dansApps/<name of your app>/dans sa Dropbox, et ce nom correspond àDROPBOX_APP_NAMEci-dessous. - Cliquez sur Create app. L’application s’ouvre sur son onglet Settings.
- Dans l’onglet Permissions, sous Files and folders, cochez
files.metadata.write,files.content.writeetfiles.content.read.account_info.readetfiles.metadata.readsont cochés en même temps et ne peuvent pas être décochés. Ne cochez aucune autre autorisation. - Cliquez sur Submit dans la barre en bas de l’onglet Permissions. Sans Submit, les autorisations ne sont pas enregistrées, et Dropbox refuse de synchroniser les fichiers des utilisateurs qui lient leur compte.

Dropbox App Console : les autorisations à cocher, enregistrées avec Submit
- Dans l’onglet Settings, sous OAuth 2, saisissez
${OVERLEAF_SITE_URL}/user/dropbox/oauth/callbackdans Redirect URIs, puis cliquez sur Add. Saisir l’URI ne suffit pas : elle n’est enregistrée qu’une fois affichée dans la liste au-dessus du champ.

Dropbox App Console : saisissez l'URI de redirection, puis cliquez sur Add
- Dans l’onglet Settings, sous Webhooks, saisissez
${OVERLEAF_SITE_URL}/dropbox/webhookdans Webhook URIs, puis cliquez également sur Add. Dropbox l’appelle immédiatement pour la vérifier : Overleaf doit donc déjà fonctionner avec les paramètres ci-dessous et être accessible depuis Internet (voir Webhook). Son statut affiche Enabled une fois la vérification réussie.
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Il doit s’agir d’un proxy de transfert HTTP/HTTPS standard, qui ne doit pas utiliser 127.0.0.1.
Créer les index de la base de données
Exécutez ceci une seule fois, avant que les utilisateurs ne lient leurs comptes Dropbox. Les index utilisés par la synchronisation Dropbox ne sont pas créés automatiquement : sans eux, chaque recherche de synchronisation parcourt toute la collection. Utilisateurs du Toolkit : exécutezbin/mongo. Utilisateurs de Docker Compose : exécutez docker compose exec mongo mongosh sharelatex. Collez ensuite :
dropboxEntities de tools/migrations : 20220825160708_recreate_dropboxEntities supprime la collection, ce qui efface l’état de synchronisation de tous les utilisateurs.Webhook
Dropbox informe Overleaf des modifications effectuées dans Dropbox au moyen d’un webhook, afin qu’elles apparaissent dans Overleaf en quelques secondes. Le webhook pointe vers l’adresse de votre site,${OVERLEAF_SITE_URL}/dropbox/webhook, et ne nécessite aucun port supplémentaire, mais Dropbox doit pouvoir y accéder depuis Internet. Lorsque vous l’ajoutez dans l’App Console, Dropbox le vérifie immédiatement.
Sans webhook, par exemple sur un serveur que Dropbox ne peut pas joindre, les modifications effectuées dans Overleaf sont toujours envoyées vers Dropbox, mais celles effectuées dans Dropbox ne reviennent que lorsqu’un utilisateur clique sur sync this project now dans la boîte de dialogue Dropbox de l’éditeur.
Fonctionnement de la synchronisation
- Liaison : lorsqu’un utilisateur lie son compte Dropbox, les projets dont il est propriétaire sont envoyés vers Dropbox. Les projets partagés avec lui apparaissent dans Dropbox lors de leur prochaine modification.
- D’Overleaf vers Dropbox : les nouveaux fichiers, les renommages, les déplacements, les suppressions et les renommages de projets sont envoyés immédiatement. Les modifications faites dans l’éditeur sont envoyées une fois qu’Overleaf les a enregistrées dans son stockage, quelques minutes après que tout le monde a quitté le projet. Pour les envoyer plus tôt, cliquez sur sync this project now dans la boîte de dialogue Dropbox de l’éditeur (une fois par minute).
- De Dropbox vers Overleaf : les fichiers nouveaux et modifiés, les nouveaux dossiers et les suppressions dans un dossier de projet sont appliqués au projet. Un nouveau dossier à la racine du dossier de l’application devient un nouveau projet. Supprimer un dossier de projet dans Dropbox marque le projet comme supprimé dans Overleaf.
- Conflits : lorsqu’un fichier est modifié aux deux endroits en même temps, la dernière modification l’emporte. Dropbox peut conserver l’autre version sous forme de conflicted copy.
- Collaborateurs : les collaborateurs qui lient leur Dropbox reçoivent les projets partagés avec eux. Les utilisateurs en lecture seule et les relecteurs reçoivent le projet, mais leurs modifications dans Dropbox ne sont pas synchronisées vers Overleaf.
- Fichiers ignorés : les fichiers qu’Overleaf ne synchronise pas, comme les fichiers de compilation (
.aux,.log, …),.DS_Storeou les environnements virtuels Python, restent uniquement dans Dropbox.
Q&A
Pourquoi un utilisateur ne peut-il pas lier son compte Dropbox ?
Pourquoi un utilisateur ne peut-il pas lier son compte Dropbox ?
- Un dossier Dropbox qu’Overleaf ne connaît pas encore est associé à un projet par son nom : un utilisateur dont plusieurs projets portent le même nom est donc invité à les renommer au préalable. Les noms sont comparés sans tenir compte de la casse, et les projets archivés ou placés dans la corbeille sont également pris en compte.
- Un compte Dropbox ne peut être lié qu’à un seul compte Overleaf.
Pourquoi un compte Dropbox a-t-il été délié ?
Pourquoi un compte Dropbox a-t-il été délié ?
Puis-je renommer un dossier de projet dans Dropbox ?
Puis-je renommer un dossier de projet dans Dropbox ?
Pourquoi certains dossiers de projet sont-ils numérotés, comme « Thesis (1) » ?
Pourquoi certains dossiers de projet sont-ils numérotés, comme « Thesis (1) » ?
Que se passe-t-il lorsque je supprime un dossier de projet dans Dropbox ?
Que se passe-t-il lorsque je supprime un dossier de projet dans Dropbox ?
- Si aucun autre projet ne porte le nom du dossier, le projet est marqué comme supprimé dans Overleaf. Ses fichiers et son historique sont conservés.
- Si plusieurs projets portent ce nom, Overleaf ne peut pas déterminer à quel projet appartenait le dossier. Il délie le compte Dropbox et affiche une notification invitant à renommer les projets. Donnez des noms distincts aux projets avant de supprimer leurs dossiers dans Dropbox.
- Un dossier numéroté, comme « Thesis (1) », ne correspond à aucun nom de projet : le supprimer ne modifie donc pas le projet dans Overleaf. Cliquez sur sync this project now dans la boîte de dialogue Dropbox de l’éditeur pour envoyer à nouveau le projet vers Dropbox.
Que se passe-t-il dans Dropbox lorsque je supprime un projet dans Overleaf ?
Que se passe-t-il dans Dropbox lorsque je supprime un projet dans Overleaf ?
Qu'advient-il des modifications effectuées dans Dropbox pendant qu'un projet est archivé ou dans la corbeille ?
Qu'advient-il des modifications effectuées dans Dropbox pendant qu'un projet est archivé ou dans la corbeille ?
Pourquoi le lien Dropbox de l'éditeur ouvre-t-il la page d'accueil de Dropbox ?
Pourquoi le lien Dropbox de l'éditeur ouvre-t-il la page d'accueil de Dropbox ?
Apps/<app folder>/<project> sur dropbox.com, comme sur Overleaf Cloud. Lorsque Dropbox affiche son dossier Apps sous un nom traduit, par exemple 应用 en chinois, le lien ne trouve pas le dossier et Dropbox ouvre sa page d’accueil à la place. Ouvrez le dossier du projet depuis le dossier Apps traduit dans Dropbox.Pourquoi certains fichiers d'un projet manquent-ils dans Dropbox ?
Pourquoi certains fichiers d'un projet manquent-ils dans Dropbox ?

