Хотя ответ Боба довольно понятен для общедоступных веб-сайтов и прост, но если вы ищете другие альтернативы, которые могут работать для внутренних сайтов или не хотите использовать CDN, вы можете попробовать следующие варианты.
Вариант 1 -
Это наиболее распространенный вариант, который люди предпочитают.Вы просто настраиваете два разных DNS-хоста для статического и API-интерфейса (при условии, что вы включили правильный CORS для * .example.com)
example.com (S3) -> S3 статическое содержимое
api.example.com (APIGateway) -> Lambda
Вариант 2 -
Example.com (APIGateway) -> / apigLambda -> Lambda
Example.com (APIGateway) -> / * -> S3 Bucket / S3 File.
Конфигурация шлюза API -
Бэкэнд-прокси API шлюза S3 -
Пример URL-адресов API -
https://xxx.execute -api.us-east-1.amazonaws.com / dev / apigLambda
https://xxx.execute -api.us-east-1.amazonaws.com /dev / myfilename.css
Ссылка -
https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html
Примечание. В приведенной выше ссылке Url имя сегмента принимается в пути URL-адресано в моем примере имя сегмента скрыто, поэтому пользователи не имеют представления об имени сегмента S3, когда видят URL-адрес шлюза API.
Вариант 3 -
В соответствии с вашим комментарием просто используйте {proxy +} в качестве ресурса для прокси-сервера S3 для поддержки вызовов подпапок, но, как вы и предлагали, создание простого сквозного прокси-сервера не дает много возможностей для преобразования тела ответа HTTP, что, как я считаювсе еще в порядке, так как вы знаете файлы содержимого вашего сайта.