Я пытаюсь изящно обрабатывать 403 при посещении ресурса S3 по истекшему URL. В настоящее время он возвращает страницу ошибки amz xml. Я загрузил ресурс 403.html и думал, что могу перенаправить на него.AWS S3 изящно обрабатывает 403 после того, как getSignedUrl истекло
Ресурсы ведра - это активы, сохраненные/извлеченные моим приложением. Тем не менее, читая документы, я задал свойства ведра для обработки ведра как статической страницы веб-страницы и загрузил файл 403.html в корневой каталог. Все общедоступные разрешения блокируются, за исключением открытого доступа GET к ресурсу 403.html. В свойствах bucket, настройках веб-сайта я указал страницу 403.html как страницу с ошибкой. Посещение http://<bucket>.s3-website-us-east-1.amazonaws.com/some-asset.html
перенаправляет правильно http://<bucket>.s3-website-us-east-1.amazonaws.com/403.html
Однако, когда я использую AWS-SDk JS/узел и способ вызова getSignedUrl('getObject', params)
для создания подписанного URL, он возвращает другой хост URL: https://<bucket>.s3.amazonaws.com/
приглашенных истек ресурсы этого метода не попадают в 403.html. Я предполагаю, что, поскольку адрес хоста отличается, это причина, по которой он не перенаправляется автоматически.
Я также настроить статические правила маршрутизации для сайта условия
<Condition>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>403.html</ReplaceKeyWith>
</Redirect>
Тем не менее, что не перенаправляет подписанные URLs. Поэтому я не понимаю, как грациозно обрабатывать эти устаревшие URL-адреса. Любая помощь будет принята с благодарностью.
спасибо за этот тщательный ответ. Мне потребуется некоторое время, чтобы реализовать и проверить его; это, безусловно, полезно, и я проголосовал тем временем. –
Отлично, спасибо. Я имел в виду написать сообщение в блоге об этом, включая источник Lua и конфигурацию haproxy, необходимые, чтобы это произошло. Я верну это в свой список и скоро включу ссылку. –
Исходный код - файл XSL и сценарий Lua для HAProxy - https://gist.github.com/sqlbot/ce5388fd452eeb302dfd –