Skip to main content
Dropbox-synkronointi käyttää kolmea osaa jokaisessa Ayakaleaf Pro -podissa, ja kaikki kolme käynnistyvät vain asetuksella DROPBOX_ENABLED: "true":
  • web (dropbox-moduuli): linkittäminen, projektin Dropbox-valintaikkuna ja webhook, jota Dropbox kutsuu.
  • third-party-datastore: podin sisällä oma palvelunsa, joka käy läpi Dropboxiin lähetettävien tai sieltä noudettavien muutosten jonoa.
  • document-updater: kun Dropbox on käytössä, se kirjoittaa editorin muutokset MongoDB:hen taustalla muutama minuutti sen jälkeen, kun kaikki ovat poistuneet projektista; vasta sitten ne menevät Dropboxiin.
Luo Dropbox-sovellus ja lue, miten synkronointi toimii, sivulta Dropbox-synkronointi; tämä sivu vie sen Kubernetesiin.

Konfiguraatio

1

ConfigMap

30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" ja sivun Git-integraatio git-bridge-StatefulSet on oltava käytössä: ilman niitä tilin asetukset piilottavat projektien synkronoinnin osion.
2

Secret

DROPBOX_TOKEN_CIPHER_PASSWORD salaa käyttäjien Dropbox-tunnisteet MongoDB:ssä. Jokaisen replikan on käytettävä samaa arvoa, ja sen myöhempi vaihtaminen pakottaa jokaisen käyttäjän linkittämään Dropboxin uudelleen.
3

Luo tietokantaindeksit

Aja kohdan Tietokantaindeksien luominen indeksikomennot kerran replikajoukon ensisijaisella jäsenellä:
4

Ota käyttöön ja käynnistä uudelleen

third-party-datastore.log on olemassa vain, kun DROPBOX_ENABLED on "true".
5

Avaa webhook internetiin

Dropboxin on tavoitettava ${OVERLEAF_SITE_URL}/dropbox/webhook internetistä. Jos ingress tai kuormantasaaja sallii ulkoa vain tietyt polut tai verkot, salli tämä; se on ainoa polku, jota Dropbox kutsuu. Tarkista se klusterin ulkopuolelta:
Lisää sitten webhook Dropbox App Consoleen Toolkit-sivulla kuvatulla tavalla.

Useita replikoita

Jaetun DROPBOX_TOKEN_CIPHER_PASSWORD-arvon lisäksi ei tarvita mitään muuta:
  • Webhook voi saapua mille tahansa replikalle. Se vain lisää muutoksen jonoon Redisissä.
  • Jokainen replika ajaa third-party-datastorea, ja kukin käsittelee jaettua jonoa. Käyttäjän jono varataan Redisissä olevalla lukolla, joten vain yksi replika kerrallaan lähettää tai noutaa tietyn käyttäjän muutokset.
  • Jokaisen replikan document-updater kirjoittaa joutilaat projektit taustalla. Jokainen projekti otetaan Redisissä olevasta jaetusta luettelosta, joten se kirjoitetaan kerran.

Testattu Kubernetesissa

Dropbox-API:n jäljitelmää vasten Kubernetes 1.37:ssä kolmella replikalla HAProxyn takana Dropbox-synkronoinnin päästä päähän -testimme menevät läpi (59 tapausta): linkittäminen ja linkityksen poistaminen; projektien, muokkausten, binääritiedostojen, uudelleennimeämisten, siirtojen ja poistojen lähettäminen Dropboxiin, mukaan lukien editorissa tehty muokkaus, joka saapuu taustakirjoituksen kautta projektin sulkemisen jälkeen ilman kääntämistä tai ”sync now” -toimintoa; Dropboxissa tehtyjen muutosten soveltaminen webhookin kautta (vahvistushaaste ja allekirjoituksen tarkistus), uudet projektit uusista kansioista, poistetut projektikansiot; samannimiset projektit; editorin Dropbox-valintaikkuna ja ”sync now” nopeusrajoituksineen; Dropboxin uudelleenyritykset, nopeusrajoitukset ja aikakatkaisut; tilien linkityksen poisto, kun Dropbox on täynnä, hylkää tunnisteen tai on jäädytetty; jäädytetyt Overleaf-tilit; sekä webhookin vastaus, kun third-party-datastore ei ole käynnissä.
Viimeksi muokattu 2. marraskuuta 2026