Я создал корзину в S3 для хранения изображений и затем Изменение размера изображений на лету с помощью Amazon S3, AWS Lambda и Amazon API Gateway | AWS Compute Blog , чтобы изменить их размер с помощью Lambda.
Пока это работает хорошо, но я не могу заставить работать правила перенаправления. По какой-то причине я продолжаю получать «Нет такого ключа», когда он должен перенаправить на REST API, чтобы изменить размер изображения.
Вот мой конфиг для правил перенаправления:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals/>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>https</Protocol>
<HostName>8mxk2saka6.execute-api.sa-east-1.amazonaws.com</HostName>
<ReplaceKeyPrefixWith>default/pp-create-thumbnails-for-user-assets?key=</ReplaceKeyPrefixWith>
<HttpRedirectCode>307</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
Вот скриншот с ошибкой:
![Screenshot with the error i get when trying to access thumbnail that should be redirected to the API endpoint which generates it when it does not exist](https://i.stack.imgur.com/EPd27.png)
Добавление снимков экрана для конфигурации API в Lambda:
![Dashboard at API configuration](https://i.stack.imgur.com/WpTsH.png)
И снимок экрана, на котором показано, что я вижу на панели управления Lambda:
![enter image description here](https://i.stack.imgur.com/pflAZ.png)
Что я делаю не так?
Обновление
Как сказал Том в ответ ниже, очень важно заметить, что есть два способа получить доступ к корзине из браузера:
1. https://YOUR_BUCKET.s3-sa-east-1.amazonaws.com
, а другой -
2. http://YOUR_BUCKET.s3-website-sa-east-1.amazonaws.com
Вы будете НЕ быть в состоянии применить правила перенаправления к первому, только 2-й знает о них.
Итак, после выполнения конфигурации для изменения размера изображений, убедитесь, что вы используете 2-й URL (stati c веб-хостинг один) для перенаправления.
Надеюсь, что это поможет кому-то еще с этой проблемой.