Análisis
De acuerdo con el comportamiento documentado de solicitud y respuesta y los códigos de estado HTTP admitidos para orígenes personalizados , Amazon CloudFront no sigue los redireccionamientos , desafortunadamente:
[...] Después de configurar la redirección, la primera vez que un usuario final envía una solicitud para el objeto, CloudFront Front envía la solicitud al origen, y el origen responde con una redirección (por ejemplo, 302 movido temporalmente). CloudFront almacena en caché la redirección y la devuelve al usuario final. CloudFront no sigue la redirección. [énfasis mío]
Por supuesto, está utilizando Amazon S3 en lugar de un origen personalizado, y una sección relacionada está notablemente ausente del comportamiento de solicitud y respuesta para los orígenes de Amazon S3 , pero dado que las redirecciones de Amazon S3 solo se han agregado recientemente (consulte Amazon S3 - Soporte para el sitio web Redireccionamientos ), podría faltar todavía allí.
En consecuencia, me atrevo a suponer que no está recibiendo un archivo vacío con el código de estado HTTP 200 OK , sino un estado HTTP 301 movido permanentemente sin ningún cuerpo: ¿ha verificado esto realmente con un navegador o eventualmente solo con una herramienta de línea de comandos como por ejemplo, cURL o HTTPie ? Las últimas herramientas generalmente requieren un parámetro explícito para seguir los redireccionamientos, por lo que esto podría pasar desapercibido fácilmente.
Solucion potencial
Si el análisis resulta correcto, deberá configurar la redirección para apuntar explícitamente a CloudFront en su lugar, nuevamente vea Redirecciones :
Puede configurar su servidor web para redirigir las solicitudes a una de las siguientes ubicaciones:
La nueva URL del objeto en el servidor de origen. Cuando el usuario final sigue la redirección a la nueva URL, el usuario final omite CloudFront y va directamente al origen. Como resultado, le recomendamos que no redirija las solicitudes a la nueva URL del objeto en el origen.
La nueva URL de CloudFront para el objeto. Cuando el usuario final envía la solicitud que contiene la nueva URL de CloudFront, CloudFront obtiene el objeto de la nueva ubicación en su origen, lo almacena en caché en la ubicación del borde y devuelve el objeto al usuario final. Las solicitudes posteriores para el objeto serán atendidas por la ubicación del borde. Esto evita la latencia y la carga asociadas con los espectadores que solicitan el objeto desde el origen. Sin embargo, cada nueva solicitud del objeto incurrirá en cargos por dos solicitudes a CloudFront.