Cloudflare R2: Navegando na Configuração e Lidando com Erros de Configuração

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  1. 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!

6 curtidas