Migrando uploads do S3 para local

Quero migrar meus arquivos do S3 de volta para o local. Estou transferindo manualmente todos os arquivos do S3 para a pasta de uploads. Em seguida, devo alterar a URL base dos links de upload de volta para a URL base do fórum; será suficiente para concluir o trabalho?

Por que você não está usando a tarefa rake integrada? Pelo que sei, ela se chama uploads:migrate_from_s3

cd /var/discourse
./launcher enter app
rake uploads:migrate_from_s3

Em seguida, desative a configuração do site enable s3 uploads:

E, por fim, rebake:

rake posts:rebake

Porque meu S3 é o MinIO e não tenho certeza se essa função é compatível com ele ou não.

Tentei isso e, após a conclusão, não vi nenhuma alteração nos uploads. Eles ainda são servidos pelo S3. Aliás, a tarefa rake me pareceu estranha. Ela terminou tão rápido, mesmo tendo milhares de uploads no S3. Deveria ter levado um tempo.

Já transfere todos os meus uploads manualmente para o local. Existe algo que eu possa fazer para alterar todos os links no banco de dados e nos posts diretamente? Não preciso usar essa tarefa rake.

Você conseguiu resolver isso? Eu também estou procurando migrar todos os ativos (tudo, exceto backups) do S3 de volta para o local. Existe uma maneira fácil de fazer isso?

Eu também estou procurando uma opção semelhante. Mas li em algum lugar neste mesmo site que, para que isso funcione corretamente, alguns grandes problemas precisam ser resolvidos primeiro. Portanto, por enquanto, eles recomendam não migrar o S3 para local.

Embora eu também esteja ansioso aguardando a solução para esse problema.

Existe uma configuração oculta do site chamada algo como ‘baixar uploads do S3 para local no backup’. Acredito que você possa usá-la para restaurar em outro servidor (ou talvez no seu servidor, se alterar as configurações usando configurações de site sobrepostas em variáveis de ambiente). É isso que a cdck faz ao fechar uma conta, e nunca tive problemas ao restaurar um dos backups deles.

Executei essa configuração no console do Rails: SiteSetting.include_s3_uploads_in_backups = true. Mas ainda parece não ter tido qualquer efeito. O backup continuou com o mesmo tamanho (aproximadamente 375 MB, mesmo quando meus uploads estão entre 700 MB e 1 GB).

Se por “configurações do site sobrepostas” você se refere a todas as configurações do S3 na interface web do Disco, então tenho todas essas configurações preenchidas nesses campos.

Também estou procurando migrar meus uploads do S3 para local (VPS separado). Existe um procedimento documentado para isso?

Não exatamente. Eu tentaria usar a configuração que descrevi acima.

Existe alguma maneira de encontrar essas configurações ocultas?

A que você pode precisar no contexto desta discussão foi mencionada acima. Você pode ver todas elas em site_settings.yml no código-fonte do Discourse.

Esta tarefa rake não está mais disponível no 2.9.0 BETA 8

Alguém tem ideias de como migrar do S3 para o local?

Você pode ativar a configuração oculta do site chamada algo como download_s3_with_backups (não é bem isso, mas não consigo encontrar no meu celular agora) e, em seguida, restaurar esse backup. É isso que acontece quando você sai da hospedagem cdck, e funciona. Talvez você precise restaurar para um servidor diferente (e você faria isso de qualquer maneira para testar).

Editar: obrigado @Benjamin_D! é include_s3_uploads_in_backups

Acho que é isto:

Essa opção não está disponível na página de Configurações nos controles do site do administrador, na página de Configurações de Backup? E isso não é o oposto de baixar os arquivos S3?

Não.

backup_with_uploads não é o mesmo que include_s3_uploads_in_backups. Um inclui arquivos locais no backup. O outro baixa cada arquivo do s3 toda vez que você faz um backup. E o objetivo do s3 é que você não precise fazer backups dele.

Então isso inclui arquivos locais ao fazer backup para o S3

Isso baixa arquivos do armazenamento S3 para incluir no backup (que pode ser local ou no S3)


Estou tentando entender os passos corretos aqui, o objetivo é migrar todos os arquivos do S3 para o local, então se eu entendi o que você está dizendo:

  1. Habilitar backup_with_uploads do console do rails
  2. Criar um backup (local ou no S3)
  3. Restaurar usando o backup
  4. Desabilitar backup_with_uploads do console do rails

Está correto?

Então, qual é a melhor abordagem para mover do S3 para o local? :slight_smile:

  • Mover manualmente os arquivos (pastas optimized/original) e fazer um pós-rebake após desativar a opção S3 do Discourse?
  • Usar a opção de administrador download_s3_with_backups sombreada, baixar e descompactar esses arquivos?
  • rake uploads:migrate_from_s3?