Migração para S3
Estas instruções se aplicam à v5.x e posteriores. Se você estiver seguindo este guia para uma versão anterior, use
sharelatex em vez de overleaf nos nomes de caminhos e o prefixo SHARELATEX_ em vez de OVERLEAF_ nas variáveis de ambiente. Para a v6 e posteriores, ignore os comandos legados de user_files.Adoraríamos ouvir você! Se quiser compartilhar conosco quantos arquivos migrou, o volume total e quanto tempo a migração levou, envie um e-mail para
ayaka-notes@outlook.com .Requisitos
- Um armazenamento de objetos compatível com S3 com o qual se comunicar; veja #s3-setup para as opções
- Espaço livre em disco para migrar os dados existentes, aproximadamente o tamanho atual em disco
- Uma janela de manutenção para realizar a migração propriamente dita
- Um backup completo, incluindo a configuração, para permitir a restauração a partir dele
Estimar o espaço em disco necessário para a migração
Podemos usardu para calcular o uso atual do disco:
Os diretórios de histórico já possuem o layout correto. Você pode enviá-los diretamente da pasta de origem montada via bind mount, o que não exige espaço em disco adicional.
Etapas da migração
Etapa 0: desligar a instância
Precisamos garantir que todos os arquivos de usuários/modelos sejam migrados. O melhor é desligar a instância para não perder arquivos enviados recentemente. Consulte nosso guia sobre como realizar um backup consistente para o procedimento de desligamento.Etapa 1: reescrever o layout de diretórios
Precisamos reescrever o layout de diretórios dos arquivos de projeto para enviá-los ao S3. O layout de diretórios do armazenamento local no filestore é<project-id>_<file-id>, e o layout de diretórios no S3 é <project-id>/<file-id>.
A seguir, /srv/overleaf-s3-migration é usado para armazenar os arquivos no novo layout de diretórios. Substitua /srv/overleaf-bind-mount pelo diretório do host montado em /var/lib/overleaf. Execute os comandos de cópia no host, com permissão para ler e gravar nesses diretórios; o contêiner permanece parado.
Podemos usar o tar para reescrever o layout:
Etapa 2: enviar os arquivos
Conforme sua preferência, você pode usar o cliente S3 minio mc ou o aws cli para enviar os arquivos ao seu armazenamento de objetos compatível com S3. aws cli- Aqui você deve substituir
overleaf-user-files,overleaf-template-files,overleaf-project-blobseoverleaf-chunkspelos nomes dos seus buckets S3. - Substitua também
/srv/overleaf-bind-mountpelo caminho local do bind mount de/var/lib/overleaf. Por padrão, é~/overleaf_dataem uma implantação com docker-compose.yml e<toolkit-checkout>/data/overleafao usar o Toolkit.
Etapa 3: iniciar a instância apontando para o S3
Adicione todas as variáveis relacionadas ao S3 à sua configuração, conforme detalhado na seção Visão geral das variáveis do guia de configuração do S3. Mantenha o bind mount do diretório de dados: ele também pode conter chaves de criptografia do Zotero ou do Mendeley que não são migradas para o S3. Agora você pode iniciar a instância e validar a migração:- é possível pré-visualizar arquivos binários no editor
- é possível compilar um PDF com imagens
- é possível enviar novos arquivos
Reverter a migração
Você pode reverter a migração de forma segura invertendo as etapas:- Desligue a instância
- Espelhe os arquivos de volta invertendo a ordem de origem/destino
- Grave os novos arquivos de volta no diretório local usando um
transforminverso - Reinicie a instância com a configuração antiga
O primeiro transform remove a pasta de nível superior. O segundo transform altera o layout de diretórios para um layout plano. Os curingas (wildcards) garantem que apenas arquivos sejam extraídos, e não suas pastas pai (de projeto).

