Migrando uploads antigos para o S3

Enquanto meus novos uploads estão sendo carregados corretamente no Amazon S3, este comando está falhando ao mover os antigos do local para o S3:

DISCOURSE_S3_BUCKET="bucketname" DISCOURSE_S3_REGION="ap-south-1" DISCOURSE_S3_ACCESS_KEY_ID="AKIchangedabitUNM2" DISCOURSE_S3_SECRET_ACCESS_KEY="rX6Pf3C_changedabit_YKKtdVrnbw6B" DISCOURSE_S3_CDN_URL="https://bucketname.s3.ap-south-1.amazonaws.com" rake uploads:migrate_to_s3

Há 15 dias, este comando funcionava perfeitamente.
Hoje, está retornando este erro:

Verificando se o padrão já foi migrado...
7 de 14 uploads não foram migrados para o S3. A migração para o S3 falhou para o banco de dados 'default'.
1 postagem não foi remapeada para a nova URL de upload do S3. A migração para o S3 falhou para o banco de dados 'default'.
Procurando uploads ausentes em: default

0 uploads de postagens estão ausentes.

Nenhuma postagem requer rebaking
Migrando uploads para o S3 para 'default'...
Alguns uploads não foram migrados para o novo esquema. Por favor, execute estes comandos no console do rails

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

Também executei esses 2 comandos no console do rails, mas eles parecem não ter trazido nenhum benefício:

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

Nota: Meus uploads estão configurados para estar em uma subpasta no bucket bucketname/uploads.

Alguma ideia aqui @vinothkannans?

Está retornando algum erro? Não consigo ver nenhuma mudança recente significativa no código da tarefa rake uploads:migrate_to_s3.

Eu tive um problema semelhante. Tinha a ver com o caminho dos uploads não corresponder ao que aquele teste espera (como se estivesse faltando ‘default’ no caminho de algo).

O que fiz foi (em termos gerais e provavelmente pouco úteis) verificar o que a busca está fazendo para encontrar esses uploads que ela considera ruins e corrigi-los.

Acabei resolvendo por acaso e de uma forma que ainda não tenho certeza de como foi resolvido.

Mudei o comando algumas vezes, principalmente adicionando ou removendo a palavra ‘dualstack’ no comando e no campo de URL do CDN nas Configurações do Discourse: https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com
Mas ainda parecia não funcionar. Então, aleatoriamente, executei novamente os dois mesmos comandos (mencionados no OP) no console do Rails.
E um passo que fiz aleatoriamente por esse período foi adicionar a palavra /uploads ao nome do bucket no comando.

E ‘aleatoriamente’ (preciso de outra palavra aleatória aqui :slight_smile: ), tive sucesso.
Portanto, não posso dizer quem foi o herói da resolução aqui.
Obrigado por ouvir de qualquer forma.

Qualquer erro que apareceu ou foi exibido, eu já incluí em minha postagem original. Mas concordo que essa mensagem de erro não foi muito útil para o diagnóstico.

Infelizmente, hoje novamente, como não consegui entender o problema na migração, criei 1 upload localmente. Em seguida, tentei movê-lo novamente para o S3 com este comando:

DISCOURSE_S3_BUCKET="bxyzbucket1/uploads" DISCOURSE_S3_REGION="ap-south-1" DISCOURSE_S3_ACCESS_KEY_ID="AKIAchangedBRF" DISCOURSE_S3_SECRET_ACCESS_KEY="H0P6Oo8changed1AuLkRDCQK8" DISCOURSE_S3_CDN_URL="https://bxyzbucket1.s3.ap-south-1.amazonaws.com/uploads" rake uploads:migrate_to_s3

Embora tenha movido o 1 novo upload para o S3, ele retornou o seguinte erro:

1 de 14 uploads não foram migrados para o S3. A migração para o S3 falhou no banco de dados 'default'.
1 post não foi remapeado para o novo URL de upload do S3. A migração para o S3 falhou no banco de dados 'default'.

O que esse erro significa? Pode causar algum problema se houver milhares de imagens para serem movidas do ‘Local >> S3’? @vinothkannans

Você pode executar o seguinte comando no console do Rails e postar a saída aqui

Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '#{GlobalSetting.relative_url_root}/uploads/default/original/_X/%'")

Desculpe por ter ficado afastado dessa operação por algum tempo.
Estou executando o comando Rails enviado por você, mas nenhuma saída está aparecendo:

Ainda recebo o erro: “Falha na migração do S3 para o banco de dados ‘default’”
Embora as imagens/anexos dos posts estejam aparecendo corretamente no meu bucket e no site, logotipos do site etc. (em Configurações do Administrador > Branding) estão faltando e nem consigo atualizá-los com novos. Eles permanecem em branco.

Também executei (sem erros): rake posts:rebake_uncooked_posts e rake posts:rebake

@vinothkannans Mesmo depois de um ano, quando acabo de repetir o processo por algum motivo, o mesmo erro continua aparecendo.