Skip to main content

Binääritiedostojen siirto

Server Pron ja Community Editionin tuleva pääversio 6.0 puolittaa binääritiedostojen tallennustilan käytön. Versioon 5.5.7 sisältyy online-siirto, joka mahdollistaa mahdollisimman lyhyen käyttökatkon päivityksen yhteydessä. Server Pron versiosta 4.x lähtien binääritiedostot on tallennettu kahteen kertaan: aktiivisten tiedostojen tallennustilaan “filestoressa” sekä projektien täyteen historiajärjestelmään. Jatkossa kustakin tiedostosta tallennetaan vain yksi kopio projektien täyteen historiajärjestelmään. Siirto yhdistettyyn tallennusjärjestelmään koostuu kahdesta osasta: uudesta lipusta, jolla ohjataan siirron vaihetta, sekä skriptistä, joka käsittelee kaikki aktiiviset ja pehmeästi poistetut projektit. Vaiheet:
  • OVERLEAF_FILESTORE_MIGRATION_LEVEL=0 (oletus): tiedostot luetaan filestoresta ja kirjoitetaan sinne. Tiedostot kirjoitetaan historiaan asynkronisesti.
  • OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 : tiedostot luetaan historiasta, ja varavaihtoehtona käytetään filestorea, ja ne kirjoitetaan sekä filestoreen että historiaan. Paluu tasolle OVERLEAF_FILESTORE_MIGRATION_LEVEL=0 on mahdollinen.
  • OVERLEAF_FILESTORE_MIGRATION_LEVEL=2: tiedostot luetaan ja kirjoitetaan vain historiaan. Paluu tasolle OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 ei ole mahdollinen, ellei siirtoa tehty “offline-tilassa”.
Kun tiedot tallennetaan S3:een ja filestorelle (OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID) ja historialle (OVERLEAF_HISTORY_S3_ACCESS_KEY_ID) käytetään erillisiä palvelutilejä: anna filestore-käyttäjälle lukuoikeus historian blob-bucketiin OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET . Jatkossa filestore-palvelu palvelee kääntäjäpalvelun lukupyyntöjä.
On erittäin suositeltavaa suorittaa binääritiedostojen siirto ensin muussa kuin tuotantoympäristössä / testiympäristössä.
Tavallinen Server Pro -lisenssi sallii sovelluksen ajamisen sekä tuotantoympäristössä että yhdessä muussa kuin tuotantoympäristössä / testiympäristössä; on erittäin suositeltavaa varata testausta varten muu kuin tuotantoympäristö.
Jos päivität Server Pron/CE:n versioon 6.0 ja päätät myöhemmin palata aiempaan versioon, sinun tulee palauttaa järjestelmä täydestä varmuuskopiosta.

Siirtomenettely

1

Luo varmuuskopio

Luo instanssistasi täysi varmuuskopio, joka sisältää yhtenäisen tilannevedoksen mongo-, redis- ja sharelatex-hakemistoista.
2

Päivitä

Toolkit: Päivitä toolkit uusimpaan versioon $ bin/upgrade -skriptillä. Kun sinulta kysytään, älä vahvista kehotetta Upgrade image? – muokkaa sen sijaan manuaalisesti config/version-tiedostoa ja aseta arvoksi 5.5.7.Vanha docker-compose.yml: Päivitä sharelatex-palvelun versioksi 5.5.7.
3

Arvioi siirron koskettamien projektien määrä

Esimerkkituloste:
4

Tyhjennä projektihistorian jonot

Toista tyhjennys, kunnes kaikki projektit on tyhjennetty ("project_ids":0).
Jos “failedProjects” ei ole nolla, ota yhteyttä tukeen äläkä jatka binääritiedostojen siirtoa.
5

Siirry siirron vaiheeseen 1

Toolkit: Aseta OVERLEAF_FILESTORE_MIGRATION_LEVEL=1 tiedostossa config/variables.env.Vanha docker-compose.yml: Aseta OVERLEAF_FILESTORE_MIGRATION_LEVEL: '1' sharelatex-palvelun environment-osioon.
6

Ota määritysmuutos käyttöön ja käynnistä instanssi

Toolkit: bin/up -dVanha docker-compose.yml: docker compose up -d
7

Tarkista pääsy binääritiedostoihin

Avaa projekti Overleaf-editorissa selaimessa ja valitse binääritiedosto, esimerkiksi kuva.
8

Aja siirtoskripti

Jos tallennat lokitiedostoja pysyvästi sharelatex-kontin ulkopuolelle, varmista, että lokihakemiston omistajaksi on asetettu www-data-käyttäjä (uid=33), jotta tuotettu lokitiedosto voidaan kirjoittaa.
Tulosteen pitäisi näyttää tältä:
Jos siirto onnistuu, saat poistumiskoodin 0, ja viimeiset rivit osoittavat, ettei virheitä ollut:
Lokitiedosto näyttää tältä (käytä skriptin tulostamaa polkua):
9

Pysäytä instanssi

Toolkit: bin/stop sharelatexVanha docker-compose.yml: docker compose stop sharelatex
10

Estä sovelluksen pääsy vanhoihin tiedostoihin

Voit nyt siirtää vanhat tiedostot toissijaiseen tallennustilaan. Suosittelemme säilyttämään tiedostot jonkin aikaa siltä varalta, että ongelmia ilmenee myöhemmin.
11

Siirry siirron vaiheeseen 2

Toolkit: Aseta OVERLEAF_FILESTORE_MIGRATION_LEVEL=2 tiedostossa config/variables.env.Vanha docker-compose.yml: Aseta OVERLEAF_FILESTORE_MIGRATION_LEVEL: '2' sharelatex-palvelun environment-osioon.
12

Ota määritysmuutos käyttöön ja käynnistä instanssi

Toolkit: bin/up -dVanha docker-compose.yml: docker compose up -d
13

Tarkista pääsy binääritiedostoihin

Avaa projekti Overleaf-editorissa selaimessa ja valitse binääritiedosto, esimerkiksi kuva.

Offline-siirto

Jos haluat estää käyttäjiä kirjautumasta sisään binääritiedostojen siirtoskriptin ollessa käynnissä, noudata seuraavia ohjeita:
  • Kirjaudu Overleaf-instanssiisi ylläpitäjän tilillä
  • Napsauta Admin-painiketta ja valitse Manage Site
  • Napsauta Open/Close Editor -välilehteä
  • Napsauta Close Editor -painiketta
  • Napsauta Disconnect all users -painiketta
Kun tämä on tehty, sisäänkirjautuneet käyttäjät ohjataan huoltosivulle, ja kirjautumissivulle saapuvat uudet käyttäjät näkevät huoltosivun eivätkä voi kirjautua sisään. Nämä vaiheet on toistettava, kun instanssi käynnistetään uudelleen. Avataksesi sivuston uudelleen käynnistä instanssi yksinkertaisesti uudelleen.

Online-siirto

Siirtoskriptit on mahdollista ajaa sovelluksen ollessa edelleen käynnissä. Huomioon on otettava muutama seikka:
  • Siirtoprosessi kuormittaa I/O:ta voimakkaasti, joten resurssien käyttöä kannattaa seurata skriptin ollessa käynnissä.
  • Suurella käsittelyn rinnakkaisuudella filestore-palvelun tapahtumasilmukka voi joutua osittain estetyksi, mikä heikentäisi käyttökokemusta. Suosittelemme aloittamaan oletusarvoilla --concurrency=10 ja --concurrent-batches=1 .
  • Voit pysäyttää skriptin milloin tahansa. Kun käynnistät sen uudelleen, se validoi aiemmat projektit ja ohittaa jo käsitellyt tiedostot. Tästä on hyötyä, jos haluat ajaa siirron hiljaisempina aikoina (esim. yöllä).
Suosittelemme sulkemaan sivuston ja ajamaan siirron offline-tilassa huoltoikkunan aikana, jos projekteja on alle 1000 (katso siirtoskriptin tuloste --report-valinnalla ajettaessa). Jos projekteja on paljon, voit ajaa skriptin ja seurata sen edistymistä ja päättää sitten tilanteesi perusteella, jatkatko sen ajamista online- vai offline-tilassa.

Vanhojen binääritiedostotietojen siivoaminen

Kun siirto on valmis ja olet varmistanut, että projektit pääsevät edelleen käsiksi kaikkiin tiedostoihinsa, voit poistaa vanhan tiedostotallennustilan hakemistosta /var/lib/overleaf/data/user_files. Suosittelemme vahvasti säilyttämään nämä tiedostot jonkin aikaa – voit estää sovelluksen pääsyn niihin nimeämällä kansion ensin uudelleen.

Vianmääritys

Lisäämme vianmääritysohjeita tähän. Huomaa, että vaikka tarjoamme tukea yleensä vain Server Pron asiakkaille, tämän siirron luonteen vuoksi pyrimme parhaamme mukaan tukemaan myös CE-asiakkaita, jotka kohtaavat nimenomaan binääritiedostojen siirtoon liittyviä ongelmia. Jos binääritiedostojen siirtoskripti epäonnistuu (eli päättyy virheeseen tai tulostaa epäonnistuneiden projektien määräksi muun kuin nollan), lähetä seuraavat tiedot tukitiimillemme sähköpostitse osoitteeseen support+filestoremigration@overleaf.com ja kerro: Aihe: Binary file migration problem Viesti:
  • Instanssin tyyppi: CE tai Server Pro (poista tarpeeton)
  • Asennustyyppi: Overleaf toolkit, docker-compose.yml tai muu (poista tarpeeton)
  • Versio: 5.5.x (toolkit: $ cat config/version)
  • Siirtoskriptin tuloste (jonka pitäisi löytyä kontista hakemistosta /var/log/overleaf)
  • Raportti: (aja siirtoskripti --report-valinnalla)
  • Käsitellyt projektit: (skriptin viimeisimmän ajon mukaan)
  • Siirron kesto:
  • bin/doctor-tuloste (toolkitia käytettäessä)
  • Toolkitin versio: $ git rev-parse HEAD (Toolkitia käytettäessä)
Harkitse filestore-palvelun lokitiedostojen liittämistä sähköpostiin. Löydät ne sharelatex-kontista polusta /var/log/overleaf/filestore.log ja voit viedä ne näin:
Poista lokitiedostoista kaikki arkaluonteiset tiedot ennen niiden liittämistä.

Puuttuvat tiedostot

Server Pron/CE:n vanhemmat versiot loivat tiedostopuun merkinnät ennen kuin käyttäjien lataukset olivat valmiita, mikä saattoi saada tiedostot näyttämään puuttuvilta latauksen epäonnistuessa. Saatat löytää muutamia tällaisia tapauksia virheiksi raportoituina, kun kaikki tiedostopuut käsitellään. Jos puuttuvia tiedostoja on vähän, harkitse näiden tapausten manuaalista tarkistamista ja niiden poistamista editorista selaimessa. Jos puuttuvia tiedostoja on paljon, harkitse yhteydenottoa tukeen, katso yllä oleva sähköpostipohja.

Rikkinäisten tiedostopuiden etsiminen

Siirto voi epäonnistua projekteissa, joiden tiedostopuu on virheellinen (esimerkiksi tiedostonimet ovat tyhjiä). Voit etsiä luettelon näistä ongelmista find_malformed_filetrees-skriptillä, joka tarkistaa kaikki tietokannan projektit:
Korjaa virheelliset polut fix_malformed_filetree-skriptillä ajamalla komento kerran kutakin virheellistä polkua kohden:
Viimeksi muokattu 5. lokakuuta 2026