Skip to main content
Den här funktionen är utvecklad av ayaka-notes/ayakaleaf-pro. Den introducerades i v6.3.1 som en tidig förhandsversion och släpps officiellt i v6.4.0, så dess konfiguration och beteende kan fortfarande ändras. Vi behöver din återkoppling om du stöter på problem.
Dropbox-synkronisering håller en användares projekt synkroniserade med användarens Dropbox, precis som på Overleaf Cloud: när en användare har länkat sitt Dropbox-konto visas vart och ett av användarens projekt som en mapp i Apps/<your Dropbox app>/, ändringar i Overleaf skickas till Dropbox och ändringar som görs i Dropbox kommer tillbaka till Overleaf.

Konfigurera Dropbox-synkronisering

Du måste aktivera git-bridge först: utan den döljs avsnittet för projektsynkronisering i kontoinställningarna.
config/overleaf.rc
Skapa en app i Dropbox App Console, inloggad med det Dropbox-konto som ska äga appen:
  1. Klicka på Create app och fyll sedan i sidan:
    • 1. Choose an API: välj Scoped access.
    • 2. Choose the type of access you need: välj App folder, inte Full Dropbox. Overleaf synkroniserar bara inuti appens mapp.
    • 3. Name your app: ange ett namn, t.ex. Overleaf. Det måste vara unikt på Dropbox. Varje användares projekt visas i Apps/<name of your app>/ i användarens Dropbox, och det här namnet är DROPBOX_APP_NAME nedan.
    • Klicka på Create app. Appen öppnas på fliken Settings.
  2. På fliken Permissions, under Files and folders, markerar du files.metadata.write, files.content.write och files.content.read. account_info.read och files.metadata.read markeras tillsammans med dem och kan inte avmarkeras. Markera inga andra behörigheter.
  3. Klicka på Submit i fältet längst ned på fliken Permissions. Utan Submit sparas inte behörigheterna, och Dropbox vägrar då att synkronisera filer för de användare som länkar sitt konto.

Dropbox App Console: behörigheterna som ska markeras, sparade med Submit

  1. På fliken Settings, under OAuth 2, anger du ${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback i Redirect URIs och klickar sedan på Add. Det räcker inte att skriva in URI:n: den sparas först när den visas i listan ovanför fältet.

Dropbox App Console: ange redirect-URI:n och klicka sedan på Add

  1. På fliken Settings, under Webhooks, anger du ${OVERLEAF_SITE_URL}/dropbox/webhook i Webhook URIs och klickar sedan på Add även här. Dropbox anropar den direkt för att kontrollera den, så Overleaf måste redan köras med inställningarna nedan och vara nåbar från internet (se Webhook). Dess status visar Enabled när kontrollen har godkänts.
Kopiera App key och App secret (klicka på Show) från fliken Settings och lägg sedan till följande inställningar i dina filer med miljövariabler för Overleaf. Du kan lägga till webhooken (steg 5) när Overleaf körs med dem.
config/variables.env
  • Kontrollera att OVERLEAF_SITE_URL är korrekt angiven innan du konfigurerar redirect-URI:n och webhooken.
  • Dropbox fastställer behörigheterna för en token när användaren länkar sitt konto: att skicka in behörigheter ändrar inte befintliga token. Användare som länkade innan behörigheterna skickades in, eller innan du ändrade dem, måste avlänka och länka sitt Dropbox-konto igen.
  • En ny app har statusen Development. Om Development users på fliken Settings visar Only you kan bara ditt Dropbox-konto länkas: klicka på Enable additional users för att låta andra användare länka sina konton. Därefter visas hur många användare som har länkat, t.ex. 1 / 500: en app i Development kan ha högst 500 användare. För fler användare klickar du på Apply for production, och Dropbox granskar då appen.
Om du befinner dig i en region med begränsad nätverksåtkomst kan du behöva konfigurera en proxy för att nå Dropbox. Ange följande miljövariabel: DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. Det måste vara en vanlig HTTP/HTTPS-framåtproxy och får inte använda 127.0.0.1.

Skapa databasindexen

Kör detta en gång, innan användarna länkar sina Dropbox-konton. De index som Dropbox-synkroniseringen använder skapas inte automatiskt, så utan dem genomsöker varje synkroniseringsuppslag hela samlingen. Toolkit-användare: kör bin/mongo. Docker Compose-användare: kör docker compose exec mongo mongosh sharelatex. Klistra sedan in:
Det är ofarligt att köra det igen: MongoDB hoppar över index som redan finns.
Kör inte dropboxEntities-migreringarna i tools/migrations i stället: 20220825160708_recreate_dropboxEntities tar bort samlingen, vilket raderar synkroniseringstillståndet för alla användare.

Webhook

Dropbox meddelar Overleaf om ändringar i Dropbox via en webhook, så att de syns i Overleaf inom några sekunder. Webhooken går till din webbplats adress, ${OVERLEAF_SITE_URL}/dropbox/webhook, och ingen extra port behövs, men Dropbox måste kunna nå den från internet. När du lägger till den i App Console kontrollerar Dropbox den direkt. Utan webhook, till exempel på en server som Dropbox inte kan nå, skickas ändringar i Overleaf fortfarande till Dropbox, men ändringar i Dropbox kommer bara tillbaka när en användare klickar på sync this project now i Dropbox-dialogrutan i redigeraren.

Så fungerar synkroniseringen

  • Länkning: när en användare länkar sitt Dropbox-konto skickas de projekt som användaren äger till Dropbox. Projekt som delats med användaren visas i Dropbox vid sin nästa ändring.
  • Från Overleaf till Dropbox: nya filer, namnbyten, flyttningar, borttagningar och namnbyten på projekt skickas direkt. Ändringar i redigeraren skickas när Overleaf sparar dem i sin lagring, några minuter efter att alla har lämnat projektet. För att skicka dem tidigare klickar du på sync this project now i Dropbox-dialogrutan i redigeraren (en gång per minut).
  • Från Dropbox till Overleaf: nya och ändrade filer, nya mappar och borttagningar i en projektmapp tillämpas på projektet. En ny mapp högst upp i appmappen blir ett nytt projekt. Om du tar bort en projektmapp i Dropbox markeras projektet som borttaget i Overleaf.
  • Konflikter: när en fil ändras på båda ställena samtidigt vinner den senaste ändringen. Dropbox kan spara den andra versionen som en conflicted copy.
  • Medarbetare: medarbetare som länkar sin Dropbox får de projekt som delats med dem. Användare med endast läsbehörighet och granskare får projektet, men deras ändringar i Dropbox synkroniseras inte tillbaka till Overleaf.
  • Ignorerade filer: filer som Overleaf inte synkroniserar, som byggutdata (.aux, .log, …), .DS_Store eller virtuella Python-miljöer, finns bara kvar i Dropbox.

Q&A

  • En Dropbox-mapp som Overleaf ännu inte känner till matchas mot ett projekt efter sitt namn, så en användare vars projekt har samma namn ombeds först byta namn på dem. Namnen jämförs utan hänsyn till skiftläge, och arkiverade projekt och projekt i papperskorgen räknas också.
  • Ett Dropbox-konto kan bara länkas till ett Overleaf-konto.
Svar: Overleaf avlänkar ett Dropbox-konto när Dropbox avvisar dess token (till exempel efter att användaren har tagit bort appen i Dropbox), när Dropbox-lagringen är full eller när Dropbox har stängt av kontot. Ett meddelande i projektlistan talar om för användaren vilket av dessa som har hänt, tills användaren länkar kontot igen. Användaren kan länka det igen när problemet är löst.
Svar: Byt i stället namn på projektet i Overleaf: dess mapp i Dropbox byter också namn. För Overleaf innebär ett namnbyte av mappen i Dropbox att projektmappen tas bort och en ny skapas, så det gamla projektet markeras som borttaget och ett nytt projekt skapas från filerna.
Svar: Varje projekt har en egen mapp, även när två projekt har samma namn. Dropbox kan inte ha två mappar med samma namn, så den lägger till ett nummer på mappen som skapades senare. Numret beror på vilka namn som var lediga i Dropbox i det ögonblicket, inte på vilket projekt som är äldst. Overleaf känner till varje projekts mapp, så ändringar hamnar aldrig i mappen för ett annat projekt med samma namn.Ett uppladdat projekt vars namn redan är upptaget får också ett nummer i Overleaf, till exempel ”Thesis (1)”.
  • Om inget annat projekt har mappens namn markeras projektet som borttaget i Overleaf. Dess filer och historik behålls.
  • Om flera projekt har det namnet kan Overleaf inte avgöra vilket av dem mappen tillhörde. Det avlänkar Dropbox-kontot och visar ett meddelande som ber användaren byta namn på projekten. Ge projekten olika namn innan du tar bort deras mappar i Dropbox.
  • En numrerad mapp, till exempel ”Thesis (1)”, matchar inget projektnamn, så att ta bort den ändrar inte projektet i Overleaf. Klicka på sync this project now i Dropbox-dialogrutan i redigeraren för att skicka projektet till Dropbox igen.
Svar: Ingenting, dess mapp finns kvar i Dropbox. Ta bort mappen i Dropbox om du inte längre behöver den.
Svar: De tillämpas inte på projektet, och de förs inte heller in när projektet återställs. Efter återställningen slutar Overleaf skicka sina ändringar av de filer som under tiden har ändrats i Dropbox, så de två sidorna skiljer sig åt.För att synkronisera en sådan fil igen sparar du den en gång till i Dropbox. Overleaf tar då Dropbox-versionen: ändringar som gjorts i filen i Overleaf sedan återställningen ersätts och finns kvar i projekthistoriken. Återställ ett projekt innan du ändrar det i Dropbox.
Svar: Länken går till Apps/<app folder>/<project> på dropbox.com, precis som i Overleaf Cloud. När Dropbox visar sin Apps-mapp under ett översatt namn, till exempel 应用 på kinesiska, hittar länken inte mappen och Dropbox öppnar i stället sin startsida. Öppna projektmappen från den översatta Apps-mappen i Dropbox.
Svar: Ändringar som görs medan synkroniseringstjänsten inte körs, till exempel medan den startas om, skickas inte till Dropbox i efterhand. Klicka på sync this project now i Dropbox-dialogrutan i redigeraren: den skickar hela projektet igen.
Senast ändrad 2 november 2026