> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dropbox-Synchronisierung

> Lassen Sie Benutzer ihre Projekte mit einem Ordner in ihrer Dropbox synchronisieren.

> [!NOTE]
>
> Diese Funktion wurde von [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) entwickelt. Sie wurde in v6.3.1 als Early Preview eingeführt und wird in v6.4.0 offiziell veröffentlicht, daher können sich Konfiguration und Verhalten noch ändern. Wir freuen uns über Ihr Feedback, falls Probleme auftreten.

Die Dropbox-Synchronisierung hält die Projekte eines Benutzers mit seiner Dropbox synchron, wie in Overleaf Cloud: Sobald ein Benutzer sein Dropbox-Konto verknüpft, erscheint jedes seiner Projekte als Ordner in `Apps/<your Dropbox app>/`. Änderungen in Overleaf werden an Dropbox gesendet, und in Dropbox vorgenommene Änderungen gelangen zurück zu Overleaf.

### Dropbox-Synchronisierung einrichten

> [!WARNING]
>
> Sie müssen zuerst [git-bridge](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/overleaf-toolkit/integrations/git-integration.md) aktivieren: Ohne git-bridge blenden die Kontoeinstellungen den Bereich für die Projektsynchronisierung aus.
>
> ```dotenv title="config/overleaf.rc" theme={null}
> GIT_BRIDGE_ENABLED=true
> ```

Erstellen Sie eine App in der [Dropbox App Console](https://www.dropbox.com/developers/apps) und melden Sie sich dabei mit dem Dropbox-Konto an, dem die App gehören soll:

1. Klicken Sie auf **Create app** und füllen Sie die Seite aus:
   * **1. Choose an API**: Wählen Sie **Scoped access**.
   * **2. Choose the type of access you need**: Wählen Sie **App folder**, nicht **Full Dropbox**. Overleaf synchronisiert nur innerhalb des Ordners der App.
   * **3. Name your app**: Geben Sie einen Namen ein, z. B. `Overleaf`. Er muss auf Dropbox eindeutig sein. Die Projekte jedes Benutzers erscheinen in seiner Dropbox unter `Apps/<name of your app>/`, und dieser Name ist unten `DROPBOX_APP_NAME`.
   * Klicken Sie auf **Create app**. Die App öffnet sich auf ihrem Tab **Settings**.
2. Aktivieren Sie auf dem Tab **Permissions** unter **Files and folders** die Berechtigungen `files.metadata.write`, `files.content.write` und `files.content.read`. `account_info.read` und `files.metadata.read` werden dabei automatisch aktiviert und können nicht deaktiviert werden. Aktivieren Sie keine weiteren Berechtigungen.
3. Klicken Sie in der Leiste am unteren Rand des Tabs **Permissions** auf **Submit**. **Ohne Submit werden die Berechtigungen nicht gespeichert**, und Dropbox verweigert die Synchronisierung von Dateien für die Benutzer, die ihr Konto verknüpfen.

![](https://mintcdn.com/ayakaleaf-pro/34P8O6kHo91beEvQ/images/on-premises/dropbox-app-permissions.png?fit=max\&auto=format\&n=34P8O6kHo91beEvQ\&q=85\&s=8e99711b1fcf03d3d1655f65fea3a6b8)

Dropbox App Console: die zu aktivierenden Berechtigungen, gespeichert mit Submit

4. Geben Sie auf dem Tab **Settings** unter **OAuth 2** im Feld **Redirect URIs** `${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback` ein und **klicken Sie dann auf Add**. Das Eintippen der URI reicht nicht aus: Sie wird erst gespeichert, wenn sie in der Liste über dem Feld erscheint.

![](https://mintcdn.com/ayakaleaf-pro/34P8O6kHo91beEvQ/images/on-premises/dropbox-app-redirect-uri.png?fit=max\&auto=format\&n=34P8O6kHo91beEvQ\&q=85\&s=d980dc4dec22a90b5bf1f7e147cfc7c0)

Dropbox App Console: Redirect-URI eingeben und dann auf Add klicken

5. Geben Sie auf dem Tab **Settings** unter **Webhooks** im Feld **Webhook URIs** `${OVERLEAF_SITE_URL}/dropbox/webhook` ein und **klicken Sie ebenfalls auf Add**. Dropbox ruft die Adresse sofort auf, um sie zu prüfen. Overleaf muss daher bereits mit den unten stehenden Einstellungen laufen und aus dem Internet erreichbar sein (siehe [Webhook](#webhook)). Der Status zeigt **Enabled** an, sobald die Prüfung erfolgreich ist.

Kopieren Sie den **App key** und das **App secret** (klicken Sie auf **Show**) vom Tab **Settings** und fügen Sie anschließend die folgenden Einstellungen zu Ihren Overleaf-Umgebungsvariablendateien hinzu. Den Webhook (Schritt 5) können Sie hinzufügen, nachdem Overleaf mit diesen Einstellungen läuft.

```dotenv title="config/variables.env" wrap theme={null}
# used to encrypt the user's Dropbox refresh token.
# How to generate: `openssl rand -hex 32`
DROPBOX_TOKEN_CIPHER_PASSWORD=0123456789ABCDEFG # changed to yours

# Dropbox Sync Settings
DROPBOX_ENABLED=true
DROPBOX_APP_KEY=
DROPBOX_APP_SECRET=
# the name of your Dropbox app (step 1), which is the folder name in Apps/
DROPBOX_APP_NAME=Overleaf

# OAuth callback is: ${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback
# Webhook is: ${OVERLEAF_SITE_URL}/dropbox/webhook
# (Optional) DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808
```

> [!WARNING]
>
> * Stellen Sie vor dem Konfigurieren der Redirect-URI und des Webhooks sicher, dass `OVERLEAF_SITE_URL` korrekt gesetzt ist.
> * Dropbox legt die Berechtigungen eines Tokens fest, wenn der Benutzer sein Konto verknüpft: Das Übermitteln von Berechtigungen ändert bestehende Token nicht. Benutzer, die ihr Konto verknüpft haben, bevor die Berechtigungen übermittelt oder von Ihnen geändert wurden, müssen die Verknüpfung ihres Dropbox-Kontos aufheben und es erneut verknüpfen.
> * Eine neue App befindet sich im Status **Development**. Wenn **Development users** auf dem Tab **Settings** **Only you** anzeigt, kann nur Ihr eigenes Dropbox-Konto verknüpft werden: Klicken Sie auf **Enable additional users**, damit auch andere Benutzer ihr Konto verknüpfen können. Danach wird angezeigt, wie viele Benutzer verknüpft sind, z. B. `1 / 500`: **Eine App im Status Development erlaubt höchstens 500 Benutzer**. Für mehr Benutzer klicken Sie auf **Apply for production**, und Dropbox prüft die App.

Wenn Sie sich in einer Region mit eingeschränktem Netzwerkzugang befinden, müssen Sie möglicherweise einen Proxy konfigurieren, um auf Dropbox zuzugreifen. Setzen Sie dazu die folgende Umgebungsvariable: `DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808`. Es muss sich um einen standardmäßigen HTTP/HTTPS-Forward-Proxy handeln, und `127.0.0.1` darf nicht verwendet werden.

#### Datenbankindizes erstellen

Führen Sie dies einmal aus, bevor Benutzer ihre Dropbox-Konten verknüpfen. Die Indizes, die die Dropbox-Synchronisierung verwendet, werden nicht automatisch erstellt. Ohne sie durchsucht daher jede Synchronisierungsabfrage die gesamte Collection.

Toolkit-Benutzer: Führen Sie `bin/mongo` aus. Docker-Compose-Benutzer: Führen Sie `docker compose exec mongo mongosh sharelatex` aus. Fügen Sie dann Folgendes ein:

```js theme={null}
db.dropboxEntities.createIndex(
  { 'overleaf.userId': 1, 'dropbox.id': 1 },
  { name: 'overleaf.userId_1_dropbox.id_1', unique: true,
    partialFilterExpression: { 'dropbox.id': { $exists: true } } })
db.dropboxEntities.createIndex(
  { 'overleaf.userId': 1, 'overleaf.id': 1 },
  { name: 'overleaf.userId_1_overleaf.id_1', unique: true,
    partialFilterExpression: { 'overleaf.id': { $exists: true } } })
db.dropboxEntities.createIndex({ 'overleaf.userId': 1, 'dropbox.pathLower': 'hashed' })
db.dropboxProjects.createIndex({ userId: 1, projectId: 1 }, { name: 'projectId_userId_1', unique: true })
db.dropboxProjects.createIndex({ userId: 1, dropboxId: 1 }, { name: 'userId_dropboxId_1', unique: true })
```

Eine erneute Ausführung ist unbedenklich: MongoDB überspringt bereits vorhandene Indizes.

> [!CAUTION]
>
> Führen Sie stattdessen nicht die `dropboxEntities`-Migrationen aus `tools/migrations` aus: `20220825160708_recreate_dropboxEntities` löscht die Collection und damit den Synchronisierungsstatus aller Benutzer.

### Webhook

Dropbox informiert Overleaf über einen Webhook über Änderungen in Dropbox, sodass sie innerhalb von Sekunden in Overleaf erscheinen. Der Webhook wird an die Adresse Ihrer Website gesendet, `${OVERLEAF_SITE_URL}/dropbox/webhook`. Es ist kein zusätzlicher Port erforderlich, aber **Dropbox muss die Adresse aus dem Internet erreichen können**. Wenn Sie den Webhook in der App Console hinzufügen, prüft Dropbox ihn sofort.

Ohne Webhook, zum Beispiel auf einem Server, den Dropbox nicht erreichen kann, werden Änderungen in Overleaf weiterhin an Dropbox gesendet. Änderungen in Dropbox gelangen jedoch erst zurück, wenn ein Benutzer im Dropbox-Dialog des Editors auf *sync this project now* klickt.

### So funktioniert die Synchronisierung

* **Verknüpfen**: Wenn ein Benutzer sein Dropbox-Konto verknüpft, werden die Projekte, die ihm gehören, an Dropbox gesendet. Mit ihm geteilte Projekte erscheinen in Dropbox mit ihrer nächsten Änderung.
* **Von Overleaf zu Dropbox**: Neue Dateien, Umbenennungen, Verschiebungen, Löschungen und Projektumbenennungen werden sofort gesendet. Bearbeitungen im Editor werden gesendet, sobald Overleaf sie in seinem Speicher sichert, einige Minuten nachdem alle das Projekt verlassen haben. Um sie früher zu senden, klicken Sie im Dropbox-Dialog des Editors auf *sync this project now* (einmal pro Minute).
* **Von Dropbox zu Overleaf**: Neue und geänderte Dateien, neue Ordner und Löschungen in einem Projektordner werden auf das Projekt angewendet. Ein neuer Ordner auf der obersten Ebene des App-Ordners wird zu einem neuen Projekt. Das Löschen eines Projektordners in Dropbox markiert das Projekt in Overleaf als gelöscht.
* **Konflikte**: Wenn eine Datei gleichzeitig an beiden Orten geändert wird, gilt die letzte Änderung. Dropbox behält die andere Version möglicherweise als *conflicted copy*.
* **Mitarbeitende**: Mitarbeitende, die ihre Dropbox verknüpfen, erhalten die mit ihnen geteilten Projekte. Mitarbeitende mit reinem Leserecht und Reviewer erhalten das Projekt, aber ihre Änderungen in Dropbox werden nicht zurück zu Overleaf synchronisiert.
* **Ignorierte Dateien**: Dateien, die Overleaf nicht synchronisiert, etwa Build-Ausgaben (`.aux`, `.log`, …), `.DS_Store` oder virtuelle Python-Umgebungen, verbleiben nur in Dropbox.

### Q\&A

> [accordion] Warum kann ein Benutzer sein Dropbox-Konto nicht verknüpfen?
>
> **Antwort:**
>
> * Ein Dropbox-Ordner, den Overleaf noch nicht kennt, wird einem Projekt anhand seines Namens zugeordnet. Ein Benutzer, dessen Projekte denselben Namen tragen, wird daher zuerst gebeten, sie umzubenennen. Namen werden ohne Berücksichtigung der Groß- und Kleinschreibung verglichen, und archivierte sowie in den Papierkorb verschobene Projekte zählen ebenfalls.
> * Ein Dropbox-Konto kann nur mit einem Overleaf-Konto verknüpft werden.

> [accordion] Warum wurde die Verknüpfung eines Dropbox-Kontos aufgehoben?
>
> **Antwort:** Overleaf hebt die Verknüpfung eines Dropbox-Kontos auf, wenn Dropbox sein Token ablehnt (zum Beispiel nachdem der Benutzer die App in Dropbox entfernt hat), wenn die Dropbox voll ist oder wenn Dropbox das Konto gesperrt hat. Eine Benachrichtigung in der Projektliste teilt dem Benutzer mit, welcher dieser Fälle eingetreten ist, bis er das Konto erneut verknüpft. Der Benutzer kann das Konto erneut verknüpfen, sobald das Problem behoben ist.

> [accordion] Kann ich einen Projektordner in Dropbox umbenennen?
>
> **Antwort:** Bitte benennen Sie das Projekt stattdessen in Overleaf um: Sein Ordner in Dropbox wird dann ebenfalls umbenannt. Für Overleaf bedeutet das Umbenennen des Ordners in Dropbox, dass der Projektordner gelöscht und ein neuer erstellt wird. Das alte Projekt wird daher als gelöscht markiert, und aus den Dateien wird ein neues Projekt erstellt.

> [accordion] Warum sind manche Projektordner nummeriert, z. B. „Thesis (1)“?
>
> **Antwort:** Jedes Projekt hat einen eigenen Ordner, auch wenn zwei Projekte denselben Namen haben. Dropbox kann keine zwei Ordner mit demselben Namen enthalten und fügt daher dem später erstellten Ordner eine Nummer hinzu. Die Nummer hängt davon ab, welche Namen in Dropbox zu diesem Zeitpunkt frei waren, nicht davon, welches Projekt älter ist. Overleaf kennt den Ordner jedes Projekts, sodass Änderungen nie im Ordner eines anderen Projekts mit demselben Namen landen.
>
> Ein hochgeladenes Projekt, dessen Name bereits vergeben ist, erhält auch in Overleaf einen Namen mit Nummer, zum Beispiel „Thesis (1)“.

> [accordion] Was passiert, wenn ich einen Projektordner in Dropbox lösche?
>
> **Antwort:**
>
> * Wenn kein anderes Projekt den Namen des Ordners trägt, wird das Projekt in Overleaf als gelöscht markiert. Seine Dateien und sein Verlauf bleiben erhalten.
> * Wenn mehrere Projekte diesen Namen tragen, kann Overleaf nicht erkennen, zu welchem der Ordner gehörte. Es hebt die Verknüpfung des Dropbox-Kontos auf und zeigt eine Benachrichtigung an, in der um das Umbenennen der Projekte gebeten wird. Geben Sie Projekten eindeutige Namen, bevor Sie ihre Ordner in Dropbox löschen.
> * Ein nummerierter Ordner wie „Thesis (1)“ entspricht keinem Projektnamen, daher ändert sein Löschen nichts am Projekt in Overleaf. Klicken Sie im Dropbox-Dialog des Editors auf *sync this project now*, um das Projekt erneut an Dropbox zu senden.

> [accordion] Was passiert in Dropbox, wenn ich ein Projekt in Overleaf lösche?
>
> **Antwort:** Nichts, sein Ordner bleibt in Dropbox erhalten. Löschen Sie den Ordner in Dropbox, wenn Sie ihn nicht mehr benötigen.

> [accordion] Was passiert mit Änderungen in Dropbox, während ein Projekt archiviert oder im Papierkorb ist?
>
> **Antwort:** Sie werden nicht auf das Projekt angewendet, und auch das Wiederherstellen des Projekts übernimmt sie nicht. Nach dem Wiederherstellen sendet Overleaf seine Änderungen an den Dateien, die in der Zwischenzeit in Dropbox geändert wurden, nicht mehr, sodass sich die beiden Seiten unterscheiden.
>
> Um eine solche Datei wieder zu synchronisieren, speichern Sie sie noch einmal in Dropbox. Overleaf übernimmt dann die Dropbox-Version: Seit dem Wiederherstellen in Overleaf vorgenommene Änderungen an der Datei werden ersetzt und bleiben im Projektverlauf erhalten. Stellen Sie ein Projekt wieder her, bevor Sie es in Dropbox ändern.

> [accordion] Warum öffnet der Dropbox-Link im Editor die Dropbox-Startseite?
>
> **Antwort:** Der Link führt zu `Apps/<app folder>/<project>` auf dropbox.com, wie in Overleaf Cloud. Wenn Dropbox seinen Ordner `Apps` unter einem übersetzten Namen anzeigt, zum Beispiel `应用` auf Chinesisch, findet der Link den Ordner nicht, und Dropbox öffnet stattdessen seine Startseite. Öffnen Sie den Projektordner in Dropbox über den übersetzten Ordner `Apps`.

> [accordion] Warum fehlen in Dropbox einige Dateien eines Projekts?
>
> **Antwort:** Änderungen, die vorgenommen wurden, während der Synchronisierungsdienst nicht lief, zum Beispiel während eines Neustarts, werden später nicht an Dropbox gesendet. Klicken Sie im Dropbox-Dialog des Editors auf *sync this project now*: Dadurch wird das gesamte Projekt erneut gesendet.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.