Ресайз изображения на лету используя:
- 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.
Здравствуйте, может Вы поможете. У меня получилось установить, в демо все отображается корректно, по ссылке которая генерируется в нижнем правом углу — картинка открывается. Но как мне отправлять запрос? Я пробовал отправить запрос с объектом из 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. Документацию читал, не прояснилось, гуглил. Все равно не понимаю какие и куда мне кидать запросы и как генерируется ссылка, я… Подробнее »
разобрался, вопрос неактуален
Только перелогинился, а то ответил как гость. Окей, удачи.
P.S. У меня вылезла следующая проблема с модулем, у AWS Gateway API есть лимит в 6 мб, так что имей ввиду.
Добрый вечер!
А вы GET делаете описывая все в теле запроса? Просто в модуле ресайза два варианта обращения, или прямым урлом, где через слеши указаны ключи, тем самым не позволяя хранить изображения дальше корня корзины. Или закодированная строка в Base64, как под Body указана. А прямым обращением думаю модуль где-то отсекает на запросе, можно детальнее в CloudWatch глянуть, он создает там лог. Но если я правильно понял вас, то в вашем случае запросы только через Base64