Olá a todos,
Queria compartilhar minha experiência e os passos sobre como configurei com sucesso o Cloudflare R2 para uploads e backups no meu fórum Discourse. Espero que isso ajude outras pessoas que procuram usar o Cloudflare R2 com o Discourse.
Visão Geral da Configuração:
- Plataforma: Discourse (instalação Bitnami)
- Bucket: Cloudflare R2
- Domínio Personalizado: Configurado para servir arquivos publicamente
- Configuração: Feita inteiramente através das configurações do site do Discourse (nenhuma variável de ambiente foi tocada)
Guia Passo a Passo:
- Criar um Bucket Cloudflare R2:
- Faça login na sua conta Cloudflare e navegue até o armazenamento R2.
- Crie um novo bucket para seus uploads do Discourse (por exemplo,
forum-uploads). - Anote a URL da API S3 do Bucket, o ID da Chave de Acesso e a Chave de Acesso Secreta.
- Configurar Domínio Personalizado para CDN:
- Para servir o conteúdo do seu bucket R2 publicamente, crie um domínio personalizado no Cloudflare.
- Por exemplo, usei
forumfiles.example.in. - Certifique-se de configurar as configurações de DNS para apontar para o CNAME fornecido pelo Cloudflare. Como tenho um domínio no Cloudflare, ele fez isso por mim.
- Configurar Configurações do Site do Discourse:
- s3_bucket: O nome do seu bucket R2 (por exemplo,
forum-uploads). - s3_region: Defina como Leste dos EUA (Norte da Virgínia). Não havia opção de automático.
- s3_endpoint: Use a URL da API S3 do Bucket fornecida pelo Cloudflare (por exemplo,
https://\u003cseu-id-unico-do-bucket\u003e.r2.cloudflarestorage.com). - s3_access_key_id: Seu ID da Chave de Acesso do R2.
- s3_secret_access_key: Sua Chave de Acesso Secreta do R2.
- s3_cdn_url: Seu domínio personalizado para CDN (por exemplo,
https://forumfiles.example.in). - Certifique-se de que habilitar backups s3 e habilitar uploads s3 estejam marcados.
- s3_bucket: O nome do seu bucket R2 (por exemplo,
- Ajustar Permissões e CORS:
- Defina seu bucket R2 como privado e configure uma política CORS:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
* Isso garante que os uploads funcionem corretamente sem problemas de CORS.
- Testar a Configuração:
- Faça o upload de um arquivo ou imagem de teste através do seu fórum Discourse para verificar se os uploads estão funcionando corretamente.
- Verifique se os arquivos estão acessíveis através do seu domínio personalizado (por exemplo,
https://forumfiles.example.in/original/1X/...). - Verifique os backups, consegui executar backups com sucesso. Verifiquei no bucket R2 e ele também está listado nas configurações do site.
Conclusão:
Seguindo estes passos, consegui integrar o Cloudflare R2 com o Discourse de forma transparente, lidando com uploads e backups de forma eficiente. Se você tiver alguma dúvida ou encontrar problemas, sinta-se à vontade para perguntar!