S3 предлагает собственные страницы ошибок через конечные точки веб-сайта - но не конечные точки REST ... но подписанные URL-адреса работают только с конечными точками REST, а не с конечными точками веб-сайта.
Итак, нет, нет прямого решения этой проблемы, используя только S3.
Одним из вариантов является использование CloudFront, который позволяет заменять стандартные страницы ошибок на пользовательскую статическую страницу, но содержимое ошибки теряется, а все, что у вас есть, является статической страницей. Вы также должны использовать механизм подписки на URL-адрес CloudFront, который отличается от S3 (хотя он также имеет некоторые преимущества, такие как поддержка подстановочных знаков в подписанном URL-адресе).
В this answer to a question that is similar, but not a complete duplicate Я продемонстрировал, как я использовал преобразование XSL для «стиля» XML-ошибки S3, путем изменения XML, возвращаемого в браузер, путем инъекции ссылки на таблицу стилей XSL и позволяя обозревателю сделать остальное работы ... см. скриншоты.
Я очень доволен решением, хотя у него есть то, что некоторые люди считают недостатком - для этого требуется, чтобы все запросы S3 обслуживались через прокси-сервер под управлением HAProxy в EC2. Для экземпляра EC2 есть небольшая дополнительная стоимость, но без дополнительной платы за пропускную способность, так как передача из S3 в EC2 бесплатна, а передача из EC2 в Интернет - это та же цена, что и переход от S3 к Интернету. С помощью этой настройки все еще работают подписанные URL S3. Дополнительные преимущества в моем приложении, что это позволяет мне использовать мои сертификаты SSL со статическим содержимым S3 (хотя эта возможность также доступна через CloudFront) и тот факт, что журналы доступа прокси находятся в режиме реального времени.