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 comento.

Eliminé las barras finales, pero sigue sin funcionar. 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/escritura y de que configuraste correctamente la política CORS? Sé que tienes una configuración de servidor un poco inusual, y los permisos y la configuración del bucket de Cloudflare deben estar exactamente bien, o de lo contrario obtendrás errores de permisos.

Has creado un tipo de token incorrecto: tienes un token de API general. Necesitas crear un token de 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 R2 API tokens.
  3. Haz clic en create API token.
  4. Establece los permisos en object read & write y luego en save.
  5. Esto generará un access key id y un secret access key. Estos son los valores que debes introducir en la configuración S3 de Discourse.

Y sí, necesitas eliminar las barras finales, ya que Discourse probablemente las rechazaría.

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

sí, el panel de Cloudflare puede ser un verdadero caos de configuraciones, jaja. ¡Me alegra que lo hayas solucionado!