Novato total de Http/Express aquí. Simplemente jugando y atascándose.
Tengo una aplicación configurada que sirve páginas estáticas desde un directorio public . También tengo la siguiente ruta:
app.get('*', (req, res, next)=>{ console.log(req.url) next(); });Esto registra todas las solicitudes que se realizan en mi aplicación, pero cuando una de mis páginas estáticas solicita una imagen de una fuente diferente, por ejemplo, S3 o Google, eso no se registra. Lo cual tiene sentido ya que esa solicitud obviamente no está llegando a ninguna de mis rutas.
Entonces, ¿hay alguna forma de que Express o Node estén al tanto de esas solicitudes externas? Realmente solo necesito ver las URL en las que se solicitan los activos, similar a la pestaña Red en las herramientas de desarrollo de Chrome.
Puede hacerlo enviando una redirección 302 desde su servidor a la imagen en S3, etc. En general, esta no es una buena práctica porque las solicitudes redirigidas requieren una sobrecarga adicional del navegador y de la red. Probablemente esté bien para algunas imágenes, pero es probable que no quieras hacerlo para todas.
También puede enviar por proxy la solicitud de imagen. En este caso, su servidor solicitaría la imagen de S3 y luego transmitiría la imagen al cliente. Esto también tiene un impacto en el rendimiento de su servidor.
Si desea saber qué imágenes se solicitaron y con qué frecuencia, entonces usar el análisis de registros en S3 u otro recurso de almacenamiento es probablemente una mejor manera de hacerlo.