Consigo baixar backups, nunca tive problemas com isso.
Com uploads do S3 incluídos?
Muito útil, só que quando faço upload, copiar a imagem da área de transferência não funciona, você enfrenta esse problema? No final, foi feito o upload para o R2, mas não ficou visível na postagem:
Você olhou para o URL da imagem, como ele se parece?
Então, ainda não podemos configurar o r2 através do app.yml? Apenas através da configuração do site, que é DB_S3_CONFIG?
Use este método, você pode fazer upload dos uploads locais antigos para o R2, via rake uploads:migrate_to_s3?
Ei, obrigado a todos por isso.
Se entendi corretamente, “DISCOURSE_CDN_URL” pode ser o mesmo que “DISCOURSE_S3_CDN_URL”, que é o domínio público personalizado vinculado ao bucket no Cloudflare? Ou alguma outra configuração é necessária para isso?
Sim, você deve adicionar o mesmo nome de domínio ao discourse container.yml. Aqui está um exemplo de uso:
## O endereço HTTP ou HTTPS da CDN para esta instância do Discourse (configurado para puxar)
## Veja https://meta.discourse.org/t/14857 para detalhes
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
#DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: 'auto'
DISCOURSE_S3_ENDPOINT: 'https://45dv544v56x****************************564564.eu.r2.cloudflarestorage.com'
DISCOURSE_S3_ACCESS_KEY_ID: '564dfds4f54sdfs********65564545'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'sddfsdf564564**********6545sd4f54sd56f4s6d5'
DISCOURSE_S3_CDN_URL: 'https://cdn.discourse.com.br'
##DISCOURSE_CDN_URL: 'https://cdn.discourse.com.br'
#DISCOURSE_S3_BUCKET: 'cloudflarebucketname'
#DISCOURSE_S3_BACKUP_BUCKET: 'cloudflarebackupbucketname/backups'
#DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
DISCOURSE_S3_INSTALL_CORS_RULE: false
As configurações desativadas com este caractere devem ser configuradas através do painel de administração; exemplos são fornecidos no código. Se preferir, você também pode habilitar essas configurações dentro da seção de configuração, fica a seu critério.
Esta opção quebrará o site quando definida em app.yml, pois nem todos os arquivos estáticos, como JavaScript, são hospedados no R2 por algum motivo.
Isto é ótimo. Acabei de seguir o guia na postagem nº 39 e tudo funcionou. Tenho apenas uma sugestão e 2 perguntas.
Sugestão:
Pelo que li, você deve tornar os arquivos do CDN publicamente disponíveis e o bucket de backup privado. Então, criei 2 buckets e deixei o de backup privado, enquanto tornava o bucket de arquivos público com um domínio personalizado. Isso apenas significou que tive que colocar 2 caminhos diferentes nas 2 caixas em admin.
Eu vi muitas pessoas colocando seus backups como um caminho de seu bucket de nível superior, estou pensando incorretamente sobre isso? Ou isso é apenas uma peculiaridade do CF R2?
P1:
Adicionei o ‘DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true’ no meu app.yml e reconstruí, mas quando vou para backups e clico no botão de backup, ainda recebo o pop-up dizendo que os uploads não serão incluídos. Isso é apenas porque o pop-up não tem nenhuma lógica por baixo ou algo está errado?
P2:
Se eu quiser que os uploads atuais sejam movidos para o R2, quais são os comandos concisos?
Eu procurei e tentei:
./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts
Mas parece que o primeiro comando rake só funciona se eu definir as opções do S3 no arquivo app.yml. Isso está correto?
Se eu fizer isso, o R2 continuará funcionando?
Ok, testado e considerado insuficiente.
Parece que o primeiro comando rake só funciona para a AWS.
rake aborted!
Seahorse::Client::NetworkingError: Failed to open TCP connection to exotics-unlimited.s3.auto.amazonaws.com:443 (getaddrinfo: Name or service not known) (Seahorse::Client::NetworkingError)
Existe outro comando que faz a mesma coisa com outros fornecedores de S3?
Você fez algum acompanhamento para ver se podemos obter o R2 como uma solução totalmente funcional?
R2 funciona bem; apenas não use ou defina esta opção: DISCOURSE_CDN_URL
R2 funciona bem; apenas não use ou defina esta opção:
DISCOURSE_CDN_URL
Certo, o que significa que não está funcionando totalmente porque alguns arquivos estáticos não estão sendo enviados/hospedados corretamente.
Estou apenas procurando fazer tudo funcionar em vez de apenas parte dele funcionar.
Não consigo impedir que o DC pense que é a AWS, quando na verdade é o CF R2, os backups simplesmente não são enviados. Só quero usá-lo para zips de backup, em vez da AWS. Acredito que preenchi corretamente todas as configurações e meu token de acesso tem escopo de “leitura e gravação de objetos” para este bucket específico. Adicionei também a política cors da thread.
[2025-09-06 13:56:44] Compactando o arquivo, isso pode levar algum tempo...
[2025-09-06 13:56:49] Enviando o arquivo...
[2025-09-06 13:56:49] EXCEPTION: Aws::S3::Errors::Forbidden
[2025-09-06 13:56:49] /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:559:in `rescue in exists?'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:554:in `exists?'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:46:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:351:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41: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>'
[2025-09-06 13:56:49] Excluindo backups antigos...
[2025-09-06 13:56:49] Limpando coisas...
[2025-09-06 13:56:49] Removendo o arquivo do armazenamento local...
[2025-09-06 13:56:49] Removendo sobras de '.tar'...
[2025-09-06 13:56:49] Marcando o backup como concluído...
[2025-09-06 13:56:49] Notificando 'Firsh' sobre o fim do backup...
[2025-09-06 13:56:54] Concluído!
Isso também parece estar funcionando bem para mim! (lembre-se de definir a URL do cdn, caso contrário, os uploads funcionarão, mas os downloads não)

