Não é possível fazer upload para o S3 (Cloudflare R2)

Estou configurando o R2 no meu site seguindo alguns guias aqui, mas agora só vejo uma mensagem genérica Desculpe, mas o seu upload falhou. Por favor, tente novamente. quando tento fazer upload de um arquivo. O único registro que vejo nos logs é este:

Configurei minhas URLs no arquivo app.yml porque a interface web estava rejeitando as URLs estruturadas conforme os posts de tutorial (formato inválido):

image
O CDN_URL é o domínio personalizado (configurado no Cloudflare) e o S3_ENDPOINT é a URL no painel web. Configurei todas as minhas opções corretamente com tokens de autenticação criados adequadamente:

Parece que o Cloudflare está recebendo algumas solicitações, mas nada está sendo armazenado.

Qual é o problema?

Ei,

Não será por causa das barras finais (/) na URL do CDN do S3 e no endpoint do S3?

são estes os guias que você seguiu? tem certeza de que seu bucket de upload se chama “discourse”?

Sim, eu segui o primeiro.

Correto.

Vou tentar remover as barras e te dou um retorno.

Removi as barras no final, mas ainda sem sucesso. O mesmo erro Unauthorized.

O token também está configurado corretamente.

Você tem certeza de que o token do Cloudflare R2 possui permissão de leitura/escrita e de que configurou corretamente a política CORS? Sei que sua configuração de servidor é um pouco única, e as permissões e configurações do bucket do Cloudflare precisam estar exatamente corretas, caso contrário, gerarão erros de permissão.

você criou o tipo de token errado — você tem um token de API geral. Você precisa criar um token de bucket R2:

  1. vá para o painel do Cloudflare → Armazenamento de objetos R2 (na barra lateral esquerda, em storage & databases).
  2. no lado direito da página de visão geral do R2, clique em manage (API tokens).
  3. clique em create account API token.
  4. preencha um nome apropriado para o token e defina as permissões como object read & write, depois clique em save.
  5. isso irá gerar um access key id e um secret access key. são esses valores que você precisa inserir na configuração S3 do Discourse.

e sim, você precisa remover as barras finais, pois o Discourse provavelmente as rejeitará.

Obrigado, acabou sendo esse o problema. Confuso sem necessidade, mas a culpa é da Cloudflare.

É, o painel do Cloudflare pode ser um verdadeiro ninho de vespas de configurações, haha. Que bom que você conseguiu resolver!