Análise
De acordo com o comportamento documentado de solicitação e resposta e códigos de status HTTP suportados para origens personalizadas , o Amazon CloudFront não segue os redirecionamentos , infelizmente:
[...] Depois de configurar o redirecionamento, na primeira vez em que um usuário final envia uma solicitação para o objeto, o CloudFront Front envia a solicitação para a origem, e a origem responde com um redirecionamento (por exemplo, 302 movido temporariamente). O CloudFront armazena em cache o redirecionamento e o retorna ao usuário final. O CloudFront não segue o redirecionamento. [ênfase minha]
Obviamente, você está usando o Amazon S3 em vez de uma origem personalizada, e uma seção relacionada está notavelmente ausente do Comportamento de solicitação e resposta para origens do Amazon S3 , mas, como os redirecionamentos do Amazon S3 foram adicionados apenas recentemente, consulte Amazon S3 - Suporte para site Redirecionamentos ), pode estar faltando lá ainda.
Por conseguinte, arrisco a suposição de que você não está recebendo um arquivo vazio com o código de status HTTP 200 OK , e sim um status HTTP 301 Movido permanentemente sem corpo algum - você realmente verificou isso com um navegador ou, eventualmente, apenas com uma ferramenta de linha de comando como por exemplo, cURL ou HTTPie ? As últimas ferramentas geralmente exigem um parâmetro explícito para seguir os redirecionamentos, portanto isso pode passar despercebido facilmente.
Solução potencial
Se a análise estiver correta, você precisará configurar o redirecionamento para segmentar explicitamente o CloudFront. Em seguida, consulte Redirecionamentos :
Você pode configurar seu servidor da Web para redirecionar solicitações para um dos seguintes locais:
A nova URL do objeto no servidor de origem. Quando o usuário final segue o redirecionamento para o novo URL, o usuário final ignora o CloudFront e vai direto para a origem. Como resultado, recomendamos que você não redirecione solicitações para o novo URL do objeto na origem.
O novo URL do CloudFront para o objeto. Quando o usuário final envia a solicitação que contém o novo URL do CloudFront, o CloudFront obtém o objeto do novo local na sua origem, o armazena em cache no local da borda e retorna o objeto ao usuário final. Solicitações subsequentes para o objeto serão atendidas pelo local da borda. Isso evita a latência e a carga associadas aos visualizadores que solicitam o objeto da origem. No entanto, todas as novas solicitações para o objeto terão cobranças por duas solicitações ao CloudFront.