AWS — ресайз изображений на лету

Ресайз изображения на лету используя:

  • Gateway API
  • Lambda
  • CloudFront
  • S3 Bucket

При этом в S3 Bucket будет только оригинал изображения.

 

 

Описание работы и CloudFormation template можно найти тут.

Скачиваем CloudFormation template с сайта или же по этой ссылке.

 

 

Заходим в консоль AWS

В сервисах находим "CloudFormation" — "Create stack"

Задаем имя нашему стеку, к примеру "image-resize-staging"

У нас готовый шаблон, поэтому выбираем "Template is ready"

 

Загружаем шаблон с файла.

 

SourceBuckets — пишем имя S3 Bucket, где хранятся оригиналы изображений.

CORS — если нужны, указываем

Так же будет предложено поставить веб интерфейс, для ознакомления с функциями ресайза.

Permission — если не указывать ничего, будет создана роль на основе прав текущего логина в AWS консоли.

 

 

Создаем стек. Нужно дождаться пока создастся CloudFront, это порядка 15 минут.

 

После завершения создания во вкладке "Outputs" можно посмотреть URL CloudFront

Так же к CloudFront можно привязать домен через CNAME.

0 0 vote
Рейтинг статьи

Метки: Метки

Подписаться
Уведомление о
guest
4 комментариев
старее
новее большинство голосов
Inline Feedbacks
View all comments
Евгений Владимирович

Здравствуйте, может Вы поможете. У меня получилось установить, в демо все отображается корректно, по ссылке которая генерируется в нижнем правом углу — картинка открывается. Но как мне отправлять запрос? Я пробовал отправить запрос с объектом из body, который в демо (т.е. работающий) — выдает ошибку get: https://******.cloudfront.net with body: { "bucket": "***.platform", "key": "projects/assets/000c47.jpeg", "edits": { "resize": { "width": 200, "height": 150, "fit": "cover" }, "flatten": true, "normalise": true } } Response: 403 ERROR :The request could not be satisfied. Документацию читал, не прояснилось, гуглил. Все равно не понимаю какие и куда мне кидать запросы и как генерируется ссылка, я… Подробнее »

Евгений Владимирович

разобрался, вопрос неактуален

Artem
Artem
1 год назад

Добрый вечер!
А вы GET делаете описывая все в теле запроса? Просто в модуле ресайза два варианта обращения, или прямым урлом, где через слеши указаны ключи, тем самым не позволяя хранить изображения дальше корня корзины. Или закодированная строка в Base64, как под Body указана. А прямым обращением думаю модуль где-то отсекает на запросе, можно детальнее в CloudWatch глянуть, он создает там лог. Но если я правильно понял вас, то в вашем случае запросы только через Base64