Comments 25
Почему выбор пал на ffmpeg? Это явный overkill для простого ресайза картинок.
Возможно вы правы. Какую либу вы бы посоветовали?
Похоже, что-нибудь вроде https://github.com/serverlesspub/imagemagick-aws-lambda-2 будет прямым serverless аналогом этого решения.
Дешево сердито. Не благодарите. https://github.com/vedmak3/clipImage
Спасибо за решение. Оно тоже имеет место быть. Но в данном случае я рассказал об облачном решении, которое бесплатно до определенного лимита вызовов в месяц
То есть злоумышленнику достаточно перебирать разные размеры кропа, чтобы съесть бесплатный лимит вызовов и превратить приложение в тыкву, при этом решение не предусматривает обычные методы борьбы с таким DDoS'ом (асимметричное шифрование параметров url картинки, кэширование и т. п.)
AWS предлагают солюшен немного на других технологиях https://github.com/aws-solutions/serverless-image-handler. В чем преимущество вашего решения?
В предыдущей своей статье я использовал Terraform. В целом, не принципиально, чем именно будет развертываться облако. По моему опыту для более простых проектов легче использовать Serverless Framework. Вы можете сравнить сложность конфигурации Terraform и Serverless Framework. Docker images уже давно есть. Но почему не актуально использовать слои? Слой же можно переиспользовать в различных лямбдах. Слои и докер имеджы разные вещи.
Интересно есть какой сейчас TOP 1 солюшен для своих серверов ? или все пишут свои враперы над imagemagic ? просто часто вижу при запросах одни и тоже паттерны урлов для выбора и обрезки картинок
Heic контейнер для HEIF/AVIF https://trac.ffmpeg.org/ticket/7621#comment:10
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20220107090111.243853-6-leo.izen@gmail.com/ JPEG XL все же лучше.
делал такое для конвертации видео. Пришлось отказаться - у лямбды ограниченый таймаут. На больших видосах просто отваливалось
Максимальное время исполнения лямбды 15 мин. Да и в целом лямбда не предназначена для конвертации видео, для этого есть отдельные сервисы. Но если видео маленькие и их не много то почему бы и нет.
Кроме таймаута у лямбды еще и ограничение на локальный storage 512Mb - бОльшие видео придется кусками обрабатывать.
Для конвертации видео у них есть Elemental MediaConvert и ElasticTranscoder.
S3 + Lambda + ffmpeg (supports heic)