> ## 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.

# Sincronización con Dropbox

<Info>
  Esta función ha sido desarrollada por [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro). Está disponible a partir de la v6.4.0. Todavía está en fase beta. Necesitamos tus comentarios si tienes algún problema.
</Info>

La sincronización con Dropbox mantiene los proyectos de un usuario sincronizados con su Dropbox, como en Overleaf Cloud: cuando un usuario vincula su cuenta de Dropbox, cada uno de sus proyectos aparece como una carpeta en `Apps/<your Dropbox app>/`, los cambios en Overleaf se envían a Dropbox y los cambios hechos en Dropbox vuelven a Overleaf.

### Configurar la sincronización con Dropbox

<Warning>
  Debes habilitar primero [git-bridge](/es/on-premises/configuration/overleaf-toolkit/git-integration): sin él, la configuración de la cuenta oculta la sección de sincronización de proyectos.

  ```dotenv title="config/overleaf.rc" theme={null}
  GIT_BRIDGE_ENABLED=true
  ```
</Warning>

Crea una aplicación en la [Dropbox App Console](https://www.dropbox.com/developers/apps), con la sesión iniciada en la cuenta de Dropbox que será la propietaria de la aplicación:

1. Haz clic en **Create app** y, a continuación, rellena la página:
   * **1. Choose an API**: selecciona **Scoped access**.
   * **2. Choose the type of access you need**: selecciona **App folder**, no **Full Dropbox**. Overleaf solo sincroniza dentro de la carpeta de la aplicación.
   * **3. Name your app**: introduce un nombre, por ejemplo `Overleaf`. Debe ser único en Dropbox. Los proyectos de cada usuario aparecen en `Apps/<name of your app>/` en su Dropbox, y este nombre es el `DROPBOX_APP_NAME` que se indica más abajo.
   * Haz clic en **Create app**. La aplicación se abre en su pestaña **Settings**.
2. En la pestaña **Permissions**, en **Files and folders**, marca `files.metadata.write`, `files.content.write` y `files.content.read`. `account_info.read` y `files.metadata.read` se marcan junto con ellos y no se pueden desmarcar. No marques otros permisos.
3. Haz clic en **Submit** en la barra de la parte inferior de la pestaña **Permissions**. **Sin Submit, los permisos no se guardan**, y Dropbox se niega a sincronizar archivos para los usuarios que vinculen su cuenta.

<Frame caption="Dropbox App Console: los permisos que hay que marcar, guardados con Submit">
  <img src="https://mintcdn.com/ayakaleaf-pro/34P8O6kHo91beEvQ/images/on-premises/dropbox-app-permissions.png?fit=max&auto=format&n=34P8O6kHo91beEvQ&q=85&s=8e99711b1fcf03d3d1655f65fea3a6b8" alt="" width="2302" height="1444" data-path="images/on-premises/dropbox-app-permissions.png" />
</Frame>

4. En la pestaña **Settings**, en **OAuth 2**, introduce `${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback` en **Redirect URIs** y, a continuación, **haz clic en Add**. No basta con escribir la URI: solo se guarda cuando aparece en la lista situada encima del campo.

<Frame caption="Dropbox App Console: introduce la URI de redirección y haz clic en Add">
  <img src="https://mintcdn.com/ayakaleaf-pro/34P8O6kHo91beEvQ/images/on-premises/dropbox-app-redirect-uri.png?fit=max&auto=format&n=34P8O6kHo91beEvQ&q=85&s=d980dc4dec22a90b5bf1f7e147cfc7c0" alt="" width="2788" height="1450" data-path="images/on-premises/dropbox-app-redirect-uri.png" />
</Frame>

5. En la pestaña **Settings**, en **Webhooks**, introduce `${OVERLEAF_SITE_URL}/dropbox/webhook` en **Webhook URIs** y, a continuación, **haz clic en Add** también. Dropbox la llama de inmediato para comprobarla, por lo que Overleaf ya debe estar en ejecución con los ajustes siguientes y ser accesible desde internet (consulta [Webhook](#webhook)). Su estado muestra **Enabled** una vez superada la comprobación.

Copia la **App key** y el **App secret** (haz clic en **Show**) desde la pestaña **Settings** y, a continuación, añade los siguientes ajustes a tus archivos de variables de entorno de Overleaf. Puedes añadir el webhook (paso 5) después de que Overleaf se esté ejecutando con ellos.

```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>
  * Antes de configurar la URI de redirección y el webhook, asegúrate de que `OVERLEAF_SITE_URL` esté configurada correctamente.
  * Dropbox fija los permisos de un token cuando el usuario vincula su cuenta: enviar los permisos no modifica los tokens existentes. Los usuarios que vincularon su cuenta antes de que se enviaran los permisos, o antes de que los cambiaras, tienen que desvincular y volver a vincular su cuenta de Dropbox.
  * Una aplicación nueva está en estado **Development**. Si **Development users** en la pestaña **Settings** muestra **Only you**, solo se puede vincular tu cuenta de Dropbox: haz clic en **Enable additional users** para que otros usuarios puedan vincular las suyas. Entonces se muestra cuántos usuarios se han vinculado, por ejemplo `1 / 500`: **una aplicación en Development admite como máximo 500 usuarios**. Para más usuarios, haz clic en **Apply for production** y Dropbox revisará la aplicación.
</Warning>

Si te encuentras en una región con acceso a la red restringido, es posible que necesites configurar un proxy para acceder a Dropbox. Establece la siguiente variable de entorno: `DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808`. Debe ser un proxy de reenvío HTTP/HTTPS estándar y no debe usar `127.0.0.1`.

### Webhook

Dropbox informa a Overleaf de los cambios en Dropbox mediante un webhook, de modo que aparecen en Overleaf en cuestión de segundos. El webhook apunta a la dirección de tu sitio, `${OVERLEAF_SITE_URL}/dropbox/webhook`, y no necesita ningún puerto adicional, pero **Dropbox debe poder acceder a él desde internet**. Cuando lo añades en la App Console, Dropbox lo comprueba de inmediato.

Sin webhook, por ejemplo en un servidor al que Dropbox no puede acceder, los cambios en Overleaf se siguen enviando a Dropbox, pero los cambios en Dropbox solo vuelven cuando un usuario hace clic en *sincronizar este proyecto ahora* en el diálogo de Dropbox del editor.

### Cómo funciona la sincronización

* **Vinculación**: cuando un usuario vincula su cuenta de Dropbox, los proyectos de los que es propietario se envían a Dropbox. Los proyectos compartidos con él aparecen en Dropbox con su siguiente cambio.
* **De Overleaf a Dropbox**: los archivos nuevos, los cambios de nombre, los traslados, las eliminaciones y los cambios de nombre de proyectos se envían de inmediato. Las ediciones en el editor se envían cuando Overleaf las guarda en su almacenamiento, unos minutos después de que todos hayan salido del proyecto. Para enviarlas antes, haz clic en *sincronizar este proyecto ahora* en el diálogo de Dropbox del editor (una vez por minuto).
* **De Dropbox a Overleaf**: los archivos nuevos y modificados, las carpetas nuevas y las eliminaciones en la carpeta de un proyecto se aplican al proyecto. Una carpeta nueva en el nivel superior de la carpeta de la aplicación se convierte en un proyecto nuevo. Eliminar la carpeta de un proyecto en Dropbox marca el proyecto como eliminado en Overleaf.
* **Conflictos**: cuando un archivo cambia en ambos lugares al mismo tiempo, prevalece el último cambio. Dropbox puede conservar la otra versión como *copia en conflicto*.
* **Colaboradores**: los colaboradores que vinculan su Dropbox reciben los proyectos compartidos con ellos. Los lectores con permiso de solo lectura y los revisores reciben el proyecto, pero sus cambios en Dropbox no se sincronizan de vuelta con Overleaf.
* **Archivos ignorados**: los archivos que Overleaf no sincroniza, como los resultados de compilación (`.aux`, `.log`, …), `.DS_Store` o los entornos virtuales de Python, permanecen solo en Dropbox.

### Q\&A

<Accordion title="¿Por qué un usuario no puede vincular su cuenta de Dropbox?">
  <strong>Respuesta:</strong>

  * Los proyectos se asocian a las carpetas de Dropbox por su nombre, por lo que a un usuario que tiene dos proyectos con el mismo nombre se le pide que primero renombre uno de ellos.
  * Una cuenta de Dropbox solo se puede vincular a una cuenta de Overleaf.
</Accordion>

<Accordion title="¿Por qué se ha desvinculado una cuenta de Dropbox?">
  <strong>Respuesta:</strong> Overleaf desvincula una cuenta de Dropbox cuando Dropbox rechaza su token (por ejemplo, después de que el usuario haya eliminado la aplicación en Dropbox), cuando el Dropbox está lleno o cuando Dropbox ha suspendido la cuenta. El usuario puede volver a vincularla una vez resuelto el problema.
</Accordion>

<Accordion title="¿Puedo renombrar la carpeta de un proyecto en Dropbox?">
  <strong>Respuesta:</strong> Renombra el proyecto en Overleaf en su lugar. Para Overleaf, renombrar la carpeta en Dropbox equivale a eliminar la carpeta del proyecto y crear una nueva, por lo que el proyecto antiguo se marca como eliminado y se crea un proyecto nuevo a partir de los archivos.
</Accordion>


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