Agora, após a restauração (a chave foi desativar os uploads do S3), todos os links para anexos nas postagens estão quebrados (erro 404). Pesquisei no fórum e não encontrei uma solução e espero que alguém possa me indicar a direção certa.
Tenho duas opções:
Posso consertar esses links short-url quebrados que apontam para anexos incorporados em postagens (todos os links quebrados são para anexos em postagens; imagens incorporadas são renderizadas corretamente, outros links internos funcionam bem)?
Por exemplo, o URL do anexo em uma postagem no fórum aparece como https://XYZ.com/uploads/short-url/phu1HOLvkE8LWpkKYfnMPSWsvHh.zip. É isso que estou vendo nos logs quando clico em um link de anexo em uma postagem (que leva a um 404).
Mensagem (5 cópias relatadas)
Falha ao processar a resposta sequestrada corretamente: Errno::ENOENT: No such file or directory @ rb_sysopen - /XXXXX.s3.dualstack.us-east-1.amazonaws.com/optimized/1X/46728e07f9819907d1b18387bf02ea7fc25c7981_2_32x32.ico
Backtrace
/var/www/discourse/app/controllers/static_controller.rb:160:in read' /var/www/discourse/app/controllers/static_controller.rb:160:in block (2 levels) in favicon’
/var/www/discourse/lib/distributed_memoizer.rb:16:in block in memoize' /var/www/discourse/lib/distributed_mutex.rb:33:in block in synchronize’
/var/www/discourse/lib/distributed_mutex.rb:29:in synchronize' /var/www/discourse/lib/distributed_mutex.rb:29:in synchronize’
/var/www/discourse/lib/distributed_mutex.rb:14:in synchronize' /var/www/discourse/lib/distributed_memoizer.rb:12:in memoize’
/var/www/discourse/app/controllers/static_controller.rb:138:in block in favicon' /var/www/discourse/lib/hijack.rb:56:in instance_eval’
Espero realmente que haja uma maneira de corrigir esses links short-url após desativar a opção de upload do S3 ao restaurar o servidor a partir de um backup. Um re-bake da postagem não resolveu.
Se por algum motivo isso for um beco sem saída e não puder ser corrigido em massa, agora que tenho milhares de anexos órfãos na nuvem S3, há alguma maneira de limpá-los e liberar espaço? Existe alguma maneira de o Discourse percorrer seu bucket de uploads S3 e limpar todos os ativos órfãos?
Verifique se você tem um arquivo chamado b13050bdcd2d58924ba6ab3e7608b16bfc3cd1b7.zip em algum lugar em seus uploads e/ou bucket s3. Se sim, então deve ser possível, embora não fácil, corrigir as coisas.
Como você não incluiu os nomes reais do fórum ou do bucket, não podemos dizer aqui.
Então o material está todo lá, você só precisa reescrever as postagens de alguma forma. Não tenho certeza por que não está funcionando, mas os arquivos estão lá.
Eu acredito que sim, mas acho que alguém familiarizado com Discourse e Rails precisará escrevê-lo. Não estou ciente de uma solução existente para o seu problema. Existem alguns tópicos sobre a movimentação entre buckets S3 que podem oferecer algumas pistas, mas não acho que seu problema específico tenha sido resolvido antes.
Bem, sim, foi o que eu recomendei que você fizesse em primeiro lugar…
Se você não reativar os uploads do S3, a função short-url procurará por esses uploads localmente, mas eles estão no S3.
Eu vou tentar, mas por outro lado, quando eu o ativei, ele quebrou a restauração (veja meu outro tópico). Com a ajuda do Jay, tive que descobrir como desativar o upload para eventualmente restaurá-lo. Você conseguiu restaurar um servidor com a opção ativada com sucesso?
Você precisa\n\n* Desativar a configuração\n* Restaurar\n* Ativar a configuração\n\nComo descrevi em nossa troca de mensagens privadas na semana passada