S3 CDN URL ignored when uploading into posts

All of our traffic goes through CloudFront, and static content is fetched by CloudFront from one of several S3 buckets.

With uploads being sent to S3, Discourse embeds the content with a generic bucket URL despite our having s3 cdn url set. Once submitted, posts appear to use the correct URL set in s3 cdn url, although this may also be because we have DISCOURSE_CDN_URL set as well (both are set to the same URL).

The post preview window references the standard S3 URL seen in the unbaked post, though. This is a problem because we use a private ACL on files uploaded to our Discourse uploads bucket, as content on this bucket should never be accessed outside of CloudFront. The result is a broken image in the preview window.

2 Me gusta

Es decepcionante que esto se haya reportado durante tantos años sin solución.

@DanielMarquard ¿Alguna vez encontraste una solución alternativa o te vieron obligado a hacer pública la ACL de tu S3?

No creo que sea justo afirmar que esto está roto, sino más bien que la implementación más compleja no está completamente soportada.

Las cargas en S3, tal como se documentan, funcionan y se comportan correctamente.

@Stephen Ciertamente, está sujeto a interpretación…

Para mí, parece “roto” que utilice la URL del CDN en un caso y no en el otro, y que obligue a una configuración de S3 que AWS en realidad desaconseja (ACL pública para un bucket de S3).

Soy nuevo en el proyecto Discourse en general, pero sin duda puedo trabajar en una PR.

Puede valer la pena solucionarlo ahora: AWS está tomando más en serio la notificación a las personas sobre ACLs de lectura pública.

4 Me gusta

Dado que nuestra implementación actual ya no tiene una etiqueta IMG, por ejemplo:

![image|690x298,50%](upload://eGAOR4Xy4aRM2lwPIuTokBf60jS.png)

Sería bastante sencillo aplicar una CDN a lo anterior y así ahorrar tráfico.

@vinothkannans, ¿puedes solucionarlo para que la vista previa utilice la URL de la CDN?

En lugar de que la vista previa muestre:

<img src="//assets-meta-cdck-prod-meta.s3.dualstack.us-west-1.amazonaws.com/original/3X/6/6/66ef078b3ef9da9aa1b3356cb21fe22a0d25eaf0.png" alt="image" class="resizable" width="345" height="149">

Deberíamos mostrar la URL de la CDN, que es esta:

<img src="https://d11a6trkgmumsb.cloudfront.net/original/3X/6/6/66ef078b3ef9da9aa1b3356cb21fe22a0d25eaf0.png" alt="image" class="resizable" width="345" height="149">
6 Me gusta

Ahora está corregido según el siguiente commit

6 Me gusta

Este tema se cerró automáticamente después de 32 horas. Ya no se permiten nuevas respuestas.

Continuando la discusión de La URL de CDN de S3 se ignora al subir a publicaciones:

Parece que este problema ha regresado; puedo reproducirlo aquí en meta.

3 Me gusta

¿Podemos revisar esto @vinothkannans o @falco?

3 Me gusta

Según el cambio reciente, ahora obtenemos la URL del archivo subido directamente de la solicitud de carga inicial. Anteriormente, la recibíamos del endpoint /uploads/lookup-urls.json. Este commit debería solucionar el problema.

5 Me gusta

Parece que esta corrección no cubre los emojis personalizados en la vista previa, por ejemplo :allthethings:.

4 Me gusta

Esto también carece de archivos adjuntos, como exportaciones de datos o cualquier otro archivo adjunto. Estos aún provienen de S3.

¡Puedo arreglar eso!

3 Me gusta