No se puede subir a S3 (Cloudflare R2)

Estaba configurando R2 en mi sitio siguiendo algunas guías aquí, pero ahora solo veo un mensaje genérico: «Lo sentimos, pero su carga falló. Inténtelo de nuevo» cuando intento subir un archivo. Lo único que veo en los registros es esto:

Tengo mis URLs configuradas en el archivo app.yml porque la interfaz web rechazaba mis URLs tal como estaban estructuradas en las publicaciones de cómo hacerlo (formato no válido):

image

El CDN_URL es el dominio personalizado (tal como se configuró en Cloudflare) y el S3_ENDPOINT es la URL en el panel web. Tengo todas mis opciones configuradas correctamente con los tokens de autenticación creados adecuadamente:

Parece que Cloudflare está viendo algunas solicitudes, pero nada se está almacenando.

¿Cuál es el problema?

Hola,

¿No será por las barras finales (/) en la URL de la CDN de S3 y en el punto final de S3?

¿Son estas las guías que seguiste? ¿Estás seguro de que tu bucket de carga se llama «discourse»?

Sí, seguí la primera

Correcto

Probaré a quitar las barras y te estaré al tanto

Eliminé las barras finales, pero sigo sin tener suerte. El mismo error de Unauthorized.

El token también está configurado correctamente.

¿Estás seguro de que el token de Cloudflare R2 tiene permisos de lectura y escritura y de que configuraste correctamente la política CORS? Sé que tienes una configuración de servidor bastante única, y los permisos y la configuración del bucket de Cloudflare deben ser exactamente correctos, de lo contrario se producirán errores de permisos.

Has creado el tipo de token incorrecto: tienes un token de API general. Necesitas crear un token para el bucket de R2:

  1. Ve al panel de Cloudflare → Almacenamiento de objetos R2 (en la barra lateral izquierda, bajo storage & databases).
  2. En el lado derecho de la página de resumen de R2, haz clic en manage (API tokens).
  3. Haz clic en create account API token.
  4. Introduce un nombre adecuado para el token y establece los permisos en object read & write y luego haz clic en save.
  5. Esto generará una access key id y una secret access key. Estos son los valores que debes introducir en la configuración S3 de Discourse.

Y sí, necesitas eliminar las barras finales porque es probable que Discourse las rechace.

Gracias, resultó que ese era el problema… innecesariamente confuso, pero esa es culpa de Cloudflare

Sí, el panel de Cloudflare puede ser un nido de avispas de configuración, jaja. ¡Me alegra que lo hayas solucionado!