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

# Sincronização com Dropbox

<Info>
  Este recurso foi desenvolvido por [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro). Ele foi introduzido na v6.4.0 e posteriores. Ainda está em fase beta. Precisamos do seu feedback caso encontre algum problema.
</Info>

A sincronização com Dropbox mantém os projetos de um usuário sincronizados com o Dropbox dele, como no Overleaf Cloud: depois que um usuário vincula sua conta do Dropbox, cada um de seus projetos aparece como uma pasta em `Apps/<your Dropbox app>/`, as alterações feitas no Overleaf são enviadas ao Dropbox, e as alterações feitas no Dropbox voltam para o Overleaf.

### Configurar a sincronização com Dropbox

<Warning>
  Você precisa habilitar o [git-bridge](/pt/on-premises/configuration/overleaf-toolkit/git-integration) primeiro: sem ele, as configurações da conta ocultam a seção de sincronização de projetos.

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

Crie um aplicativo no [Dropbox App Console](https://www.dropbox.com/developers/apps), conectado com a conta do Dropbox que será a proprietária do aplicativo:

1. Clique em **Create app** e preencha a página:
   * **1. Choose an API**: selecione **Scoped access**.
   * **2. Choose the type of access you need**: selecione **App folder**, e não **Full Dropbox**. O Overleaf só sincroniza dentro da pasta do aplicativo.
   * **3. Name your app**: insira um nome, por exemplo, `Overleaf`. Ele deve ser único no Dropbox. Os projetos de cada usuário aparecem em `Apps/<name of your app>/` no Dropbox dele, e esse nome é o `DROPBOX_APP_NAME` abaixo.
   * Clique em **Create app**. O aplicativo abre na aba **Settings**.
2. Na aba **Permissions**, em **Files and folders**, marque `files.metadata.write`, `files.content.write` e `files.content.read`. `account_info.read` e `files.metadata.read` são marcados junto com elas e não podem ser desmarcados. Não marque outras permissões.
3. Clique em **Submit** na barra na parte inferior da aba **Permissions**. **Sem o Submit, as permissões não são salvas**, e o Dropbox se recusa a sincronizar arquivos para os usuários que vincularem sua conta.

<Frame caption="Dropbox App Console: as permissões a marcar, salvas com 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. Na aba **Settings**, em **OAuth 2**, insira `${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback` em **Redirect URIs** e, em seguida, **clique em Add**. Digitar a URI não é suficiente: ela só é salva quando aparece na lista acima do campo.

<Frame caption="Dropbox App Console: insira a URI de redirecionamento e clique em 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. Na aba **Settings**, em **Webhooks**, insira `${OVERLEAF_SITE_URL}/dropbox/webhook` em **Webhook URIs** e, em seguida, **clique em Add** também. O Dropbox a chama imediatamente para verificá-la, então o Overleaf já deve estar em execução com as configurações abaixo e acessível pela internet (consulte [Webhook](#webhook)). O status mostra **Enabled** quando a verificação é concluída com sucesso.

Copie a **App key** e o **App secret** (clique em **Show**) da aba **Settings** e, em seguida, adicione as seguintes configurações aos seus arquivos de variáveis de ambiente do Overleaf. Você pode adicionar o webhook (etapa 5) depois que o Overleaf estiver em execução com elas.

```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 a URI de redirecionamento e o webhook, certifique-se de que `OVERLEAF_SITE_URL` esteja definido corretamente.
  * O Dropbox fixa as permissões de um token quando o usuário vincula sua conta: enviar permissões não altera os tokens existentes. Os usuários que vincularam a conta antes de as permissões serem enviadas, ou antes de você alterá-las, precisam desvincular e vincular novamente sua conta do Dropbox.
  * Um novo aplicativo fica no status **Development**. Se **Development users** na aba **Settings** mostrar **Only you**, apenas a sua conta do Dropbox pode ser vinculada: clique em **Enable additional users** para permitir que outros usuários vinculem as deles. Em seguida, é exibido quantos usuários vincularam a conta, por exemplo, `1 / 500`: **um aplicativo em Development aceita no máximo 500 usuários**. Para mais usuários, clique em **Apply for production**, e o Dropbox analisará o aplicativo.
</Warning>

Se você estiver em uma região com acesso restrito à rede, talvez precise configurar um proxy para acessar o Dropbox. Defina a seguinte variável de ambiente: `DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808`. Ele deve ser um proxy de encaminhamento HTTP/HTTPS padrão e não deve usar `127.0.0.1`.

### Webhook

O Dropbox informa o Overleaf sobre alterações no Dropbox por meio de um webhook, para que elas apareçam no Overleaf em poucos segundos. O webhook aponta para o endereço do seu site, `${OVERLEAF_SITE_URL}/dropbox/webhook`, e nenhuma porta extra é necessária, mas **o Dropbox precisa conseguir acessá-lo pela internet**. Quando você o adiciona no App Console, o Dropbox o verifica imediatamente.

Sem um webhook, por exemplo, em um servidor que o Dropbox não consegue acessar, as alterações feitas no Overleaf continuam sendo enviadas ao Dropbox, mas as alterações feitas no Dropbox só voltam quando um usuário clica em *sync this project now* na caixa de diálogo do Dropbox no editor.

### Como a sincronização funciona

* **Vinculação**: quando um usuário vincula sua conta do Dropbox, os projetos dos quais ele é proprietário são enviados ao Dropbox. Os projetos compartilhados com ele aparecem no Dropbox na próxima alteração.
* **Do Overleaf para o Dropbox**: novos arquivos, renomeações, movimentações, exclusões e renomeações de projetos são enviados imediatamente. As edições feitas no editor são enviadas quando o Overleaf as salva em seu armazenamento, alguns minutos depois que todos saem do projeto. Para enviá-las antes, clique em *sync this project now* na caixa de diálogo do Dropbox no editor (uma vez por minuto).
* **Do Dropbox para o Overleaf**: arquivos novos e alterados, novas pastas e exclusões em uma pasta de projeto são aplicados ao projeto. Uma nova pasta no nível superior da pasta do aplicativo se torna um novo projeto. Excluir uma pasta de projeto no Dropbox marca o projeto como excluído no Overleaf.
* **Conflitos**: quando um arquivo é alterado nos dois lugares ao mesmo tempo, a última alteração prevalece. O Dropbox pode manter a outra versão como uma *cópia em conflito*.
* **Colaboradores**: os colaboradores que vinculam seu Dropbox recebem os projetos compartilhados com eles. Visualizadores somente leitura e revisores recebem o projeto, mas suas alterações no Dropbox não são sincronizadas de volta para o Overleaf.
* **Arquivos ignorados**: os arquivos que o Overleaf não sincroniza, como os resultados da compilação (`.aux`, `.log`, …), `.DS_Store` ou ambientes virtuais Python, permanecem apenas no Dropbox.

### Q\&A

<Accordion title="Por que um usuário não consegue vincular sua conta do Dropbox?">
  <strong>Resposta:</strong>

  * Os projetos são associados às pastas do Dropbox pelo nome; portanto, um usuário que tem dois projetos com o mesmo nome é solicitado a renomear um deles primeiro.
  * Uma conta do Dropbox só pode ser vinculada a uma conta do Overleaf.
</Accordion>

<Accordion title="Por que uma conta do Dropbox foi desvinculada?">
  <strong>Resposta:</strong> O Overleaf desvincula uma conta do Dropbox quando o Dropbox recusa seu token (por exemplo, depois que o usuário removeu o aplicativo no Dropbox), quando o Dropbox está cheio ou quando o Dropbox suspendeu a conta. O usuário pode vinculá-la novamente quando o problema for resolvido.
</Accordion>

<Accordion title="Posso renomear uma pasta de projeto no Dropbox?">
  <strong>Resposta:</strong> Em vez disso, renomeie o projeto no Overleaf. Para o Overleaf, renomear a pasta no Dropbox exclui a pasta do projeto e cria uma nova; assim, o projeto antigo é marcado como excluído e um novo projeto é criado a partir dos arquivos.
</Accordion>


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