Estou tentando algumas coisas no Cloudflare e estava pensando em sair do R2 no futuro. É por isso que, ao examinar os backups, vi que as instalações não estavam incluídas e deu um erro. Ao fazer um backup manualmente, ele dá o mesmo erro nos logs de transação. Imagens e arquivos locais são copiados, mas imagens no Cloudflare R2 não são.
Um exemplo de código de erro:
Falha ao baixar original/1X/4b8754c367e54bc5271454a09b8bd4c1a8b882d5.png devido a Aws::S3::Errors::Http501Error
/var/www/discourse/lib/s3_helper.rb:280:in `rescue in download_file'
/var/www/discourse/lib/s3_helper.rb:277:in `download_file'
/var/www/discourse/lib/file_store/s3_store.rb:338:in `download_file'
/var/www/discourse/lib/backup_restore/backuper.rb:321:in `block in add_remote_uploads_to_archive'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `block in find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:138:in `block in find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:245:in `block in in_batches'
/internal:kernel:187:in `loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:137:in `find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:70:in `find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/querying.rb:22:in `find_each'
/var/www/discourse/lib/backup_restore/backuper.rb:315:in `add_remote_uploads_to_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:248:in `create_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:40:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
Isso é esperado, e em grande parte o objetivo do S3/R2 é que você não precise fazer backup das coisas. Mas existe uma configuração oculta que baixará todas as imagens do S3 e as colocará no backup.
Ah, mas você tem DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true.
Então, talvez o R2 não funcione como sugerido originalmente. Pensei que tivesse testado e funcionado, mas não tentei baixar as imagens para o backup e provavelmente não tentei fazer uma restauração ou baixar um arquivo de backup.
Isso provavelmente pertence àquele outro tópico, já que parece contradizer a hipótese de “talvez funcione” apresentada lá.
Levantarei a questão novamente, mas ela se enche de códigos de erro a cada backup automático. Se não for feito backup, acho que seria melhor não solicitar os arquivos no S3 para evitar perder tempo. Dessa forma, não enchemos o arquivo com códigos de erro desnecessários.
Minha suposição é que ele não permitirá que você os baixe porque está tentando protegê-lo de alguém roubar todas as suas imagens. Parece outra forma de o R2 não ser compatível com o discourse.
Estou no R2 há muito tempo. Tudo parece bom, há apenas alguns problemas (como acima), mas eles podem ser corrigidos. Com o tempo, a comunidade trabalhará nesse problema, até lá, boa sorte para você
Isso é interessante! Eu só te vi reclamar de coisas que não estavam funcionando. Meus testes rápidos pareceram funcionar, mas não testei extensivamente.
Algum tipo de limitação de taxa é o meu melhor palpite para os downloads de backup, embora eu pense que haveria erros?
Após seus testes, executamos o R2 e meus problemas com o R2 foram os seguintes:
Quando desliguei o S3, as conexões se transformaram em conexões R2 estranhas (o que vi ao olhar no Docker). E quando tentei corrigir e refazer o bake, as imagens no site estavam voando e distorcidas. Após corrigi-lo após algumas tentativas, configurei o R2 apenas para upload e o uso. Portanto, ainda não encontrei uma maneira de me livrar disso (ou não consegui).
Outro problema foi que ele produziu uma mensagem de erro quando o backup foi feito. Considerando que existem 10 mil imagens, ele preenche os logs de erro em vão. Isso às vezes pode fazer com que percamos problemas importantes. (Pode ser melhor se não der uma mensagem de erro, mas deve-se notar que os dados no S3 não serão adicionados ao backup)
Não me lembro de ter tido problemas além desses. Se eu quiser fazer backup dos arquivos no R2, posso me conectar via winscp e baixá-los para o meu computador. Se alguém chamar, vamos deixar uma nota aqui
Acabei de me lembrar que quem usa S3 pode desativar esta configuração “backup com uploads”, assim podemos nos livrar da mensagem de erro. Por que não pensei nisso antes…