Después de golpearme la cabeza contra la pared durante 3 horas intentando que mi configuración de AWS S3 funcionara con Discourse en una instancia de AWS Lightsail, estoy firmemente convencido de que un tutorial simple y directo sobre esto sería útil. Hay TODO tipo de madrigueras de conejo en las que meterse con esto. Quiero decir, no tengo problemas para crear un bucket que pueda obtener archivos de forma remota usando la URL de AWS S3 proporcionada, pero una vez que introduces la CDN, el Endpoint de S3 (que la interfaz de usuario de configuración indica claramente que puede estar en blanco, pero al intentar subir da el mensaje interno de “El Endpoint no puede estar en blanco”), y cosas tan básicas como qué nivel de permisos NECESITAS realmente si usas una CDN a través de CloudFront de Amazon.
Es mucho. He rastreado Internet y no existe nada remotamente parecido y ciertamente nada que haya encontrado que esté actualizado con Discourse hoy.
Gracias por cualquier indicación.
Creo que mi principal obstáculo en este momento son los permisos, al menos desde el punto de vista de que Discourse solicita la Clave de Identificación (Key ID) y el Secreto de Clave (Key Secret). Tengo un usuario en IAM para esto, pero NO hay NADA en la información de los Buckets de S3 que parezca asociar este usuario con ese bucket, así que no tengo ni idea de si esa es la desconexión. Honestamente, he usado LightSail y AWS durante más de 8 años, pero esta área de S3 está escrita en una especie de ofuscación de estilo UX de desarrollador con 50 formas diferentes de hacer las cosas. Nada intuitivo en lo más mínimo.
Hola Jay. Sí, he mirado ese muchas veces ya. Dado que es de 2020, tiene cosas como la configuración DISCOURSE_S3_REGION, pero el área de administración no tiene tal configuración.
Además… ¿no debería hacer un rake de mis datos antiguos DESPUÉS de configurar S3 correctamente y verificar que funciona?
Este es el tipo de cosas a las que me refiero. La configuración en Discourse hace muchas suposiciones sobre que un usuario sepa de AWS, shell y Discourse como lo haría un desarrollador.
Pero demuestras que no estás siguiendo esas instrucciones.
Por eso tienes que seguir esas instrucciones y no hacerlo en la experiencia de usuario (UX).
Esas son las instrucciones a seguir.
Y no te pierdas la parte que añades al yml para que los activos se suban a S3.
Lo haría en un sitio de prueba para no estropear el sitio en vivo.
Sí. Añade la configuración de S3 a env en el yml, reconstruye, luego prueba que funciona, y luego ejecuta la tarea rake. Tienen que estar configuradas ahí, no en la base de datos. No estoy seguro de por qué no las han ocultado de la UX.
Gracias por esos enlaces. El primer enlace que publicaste tiene otro enlace en el área de AWS (Set up file and image uploads to S3) de 2013, por lo que me encuentro inmediatamente con que dicen que ponga una política de bucket X (que parece desactualizada) cuando la CDN de AWS a través de Cloudfront ya ha reemplazado la política con la suya propia. ¿Lo cambio? ¿Lo dejo? ¡Esto es la porquería a la que me refiero. Ugggg!
No son realmente la configuración de “Rellenar el espacio en blanco” en app.yml o la configuración de administrador lo que causa el problema. Es más bien una combinación de cómo interactúan esas configuraciones con el bucket creado o la CDN, etc. Así que es el lado de Amazon lo que necesita algo de aclaración. Quiero decir, lo entiendo, eso no es Discourse, pero sería muy útil para los usuarios de DISCOURSE que logran que funcione funcionalmente a través de S3. Espero que eso tenga sentido.
Ya veo. Hace tiempo que no configuro un bucket de aws. Esa parte puede ser más complicada, pero no es lo que publicaste sobre cómo lo hiciste.
Pero eso también es bastante sencillo, pegas el contenido y luego, si tienes errores, puedes abordarlos.
Ese es el único problema que has descrito.
¿Cómo configuraste el bucket? ¿Qué permisos le diste al usuario? ¿Generaste las claves? ¿Qué errores obtuviste (pero pensé que dijiste que agregaste una imagen a una publicación y funcionó)?