Levou-me uma eternidade descobrir como fazer tudo isso, então quis criar este guia para facilitar a vida das pessoas. Servir suas imagens dessa forma deve fazer seu site carregar mais rápido. Minha configuração do Discourse combina um droplet da DigitalOcean, BackBlaze B2 S3, BunnyCDN e a versão gratuita do Cloudflare.
Escolhi esses serviços após pesquisar um pouco sobre confiabilidade, preços e benchmarks. Eles pareciam as melhores opções para mim. O Cloudflare ajuda na segurança, mas, pelo que entendi, também pode deixar o site um pouco mais lento, então vale a pena investigar isso. A Backblaze tem parcerias tanto com o Cloudflare quanto com o Bunny que permitem transferência de dados gratuita.
Embora o Cloudflare seja chamado de CDN, ele não funciona como os CDNs comuns e provavelmente não funcionará sozinho para configurar o S3 com o Discourse. Você pode precisar de outro provedor de CDN; o BunnyCDN funciona bem para mim. Se alguém conseguiu fazer isso apenas com o Cloudflare, me avise como ![]()
Como configurar os uploads para o S3:
Primeiro, você precisa se cadastrar na Backblaze, criar buckets e inserir os detalhes nas configurações do Discourse:
Em seguida, cadastre-se no BunnyCDN e siga este guia:
bunny.net - The Global Edge Platform that truly Hops (link de indicação, ganho um crédito de 20 dólares na minha fatura)
Após criar sua zona de pull no BunnyCDN, você precisa obter a URL correta para inserir na configuração de backend do administrador do Discourse para “s3 cdn url”. Vá para o painel do BunnyCDN > pull zones > gerenciar zonas de pull > clique na sua zona > copie a URL ao lado de “host name”.
A URL deve se parecer com algo assim: example.b-cdn.net, mas você precisará garantir que coloque https:// na frente dela, assim: https://example.b-cdn.net
Salve as alterações na área de configurações de administrador do Discourse.
Pressione Ctrl+F5 duas vezes no seu navegador na página do seu site Discourse.
Faça um teste enviando uma imagem no editor de texto do Discourse. Inspeccione o elemento da imagem de teste ou visualize a fonte da imagem para garantir que funcionou. A URL deve ser diferente do seu domínio normal; deve ser algo como example.b-cdn.net / nome_do_arquivo
Agora, toda vez que alguém enviar uma imagem, ela ficará no seu bucket da Backblaze e não ocupará espaço no seu droplet da DigitalOcean ![]()
Backup de Uploads para o S3
Se você quiser configurar os backups do Discourse para irem para o seu bucket da Backblaze, faça o seguinte:
No guia que postei mais acima neste tópico, preste atenção na explicação de que são necessários dois buckets separados. Um bucket é público; este é o seu bucket de uploads para que os usuários enviem imagens no seu fórum. O outro bucket é privado; este é o seu bucket de backups. É importante fazer backups automatizados do Discourse caso algo quebre, assim você poderá carregar seu backup e corrigir o problema.
No painel do BunnyCDN, crie uma segunda zona de pull. Sua primeira zona de pull era para uploads; esta nova zona de pull será para backups.
painel do bunnycdn > pull zones > adicionar zona de pull
Siga o mesmo guia que vinculei anteriormente, “Como acelerar a entrega de arquivos Backblaze B2 com o BunnyCDN” do BunnyCDN, mas desta vez vincule a nova zona de pull ao seu bucket de backups em vez do bucket de uploads.
Recomendo usar o “high volume tier 5$/TB” na página de criação da zona de pull do BunnyCDN. Acho que os backups não precisam do tier mais caro e rápido “standard tier 10$/TB” que usei para o bucket de uploads.
Configure suas opções de backup na área de configurações de administrador do Discourse. “backup location” deve ser definido como S3 e “s3 endpoint” deve apontar para o que você tem na Backblaze, algo assim:
s3.us-west-002.backblazeb2.com
Pressione Ctrl+F5 duas vezes no seu site para limpar o cache.
Inicie um backup e aguarde que ele termine. Em seguida, aguarde 5 minutos e verifique a pasta de backups da Backblaze; você deverá ver o novo backup lá.
Migrando Imagens Antigas:
Esta etapa é opcional, mas recomendada, especialmente se você estiver com pouco espaço de armazenamento no seu servidor. Então, você configurou tudo para novos uploads de imagens, mas as imagens antigas também podem ser transferidas para seus buckets. Para que esse processo funcione, siga o seguinte:
Configurando o CDN Cloudflare
Esta etapa é opcional, já que a Backblaze estabeleceu uma parceria que torna a transferência de dados para o Bunny gratuita também. No entanto, para segurança adicional e outros recursos, você pode fazer os dados passarem primeiro pelo Cloudflare e, em seguida, fazer o Bunny buscar os dados de onde o Cloudflare os deixa.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


