Это идеальное использование для Lambda @ Edge с CloudFront.
Чтобы сделать это, вам сначала нужно развернуть дистрибутив CloudFront с исходной корзиной S3. В вашей Lambda вы должны затем направить запросы GET для этих объектов в ваш дистрибутив CloudFront, а не в корзину S3 напрямую.
Как только запросы будут направлены в ваш дистрибутив CloudFront, вам потребуется вторая лямбдакоторый будет развернут на Edge как Origin Response
Lambda @ Edge. С помощью этой Origin Response
Lambda @ Edge вы перехватите ответ от источника, прежде чем он будет возвращен в Средство просмотра (т. Е. Запрашивающему), и сможете изменить ответ. В коде для вашего Lambda @ Edge вы сможете проверить, возвращается ли объект из источника S3 или ответ является ошибкой, а затем создать и вернуть ваше перенаправление, если необходимо.
Выподробнее о Lambda @ Edge можно прочитать в документации AWS здесь .