【aws/api gateway/lambda/s3】 api gateway ⇔ lambda ⇔ s3 で、動的に画像のresize 全体像編
目次
前略
はい完全にこちらを参考にした。
こちらの方のgithubはこちら GitHub - pataiji/cloudmagick: Serverless dynamic image resizing application
もろもろの事情で、今回は version0.1.0を参考に 下記図の要領で行っていく
全体図
【前提】 * resize対象となる画像は S3にあらかじめ保存してある *resizeはimage magicで行う
【詳細】 * 毎回lambdaを起動させるとお金がかかるので、resizeした画像をS3に、決まったパターンで保存しails等のアプリケーション側から、都度、S3に「resize」した画像がないか確認する。 * S3アップロード時に作成にしなかったのは、最初は「300,500,700」の3パターンだけでも、あとから「やっぱ200追加」とかなると困るので * 無かった場合のみ、api gatewayのエンドポイントを叩いて resizeを実行する。
【resizeのパラメーター】
imagemagicを使うので 下記が使用可能になるイメージ
実際のurl風に書くと
* endpoin_url/300/s3_info
* endpoin_url/300x300/s3_info
* endpoin_url/crop200x200+370+370/s3_info
reizeするための api URLの例は
endpoin_url/crop200x200+370+370/bucket_name/image/1/hogehoge.png
【resizeしたあとの保存】
元画像: bucket_name/image/1/hogehoge.png
resize画像: bucket_name/image/1/300/hogehoge.png
resize画像: bucket_name/image/1/300x300/hogehoge.png
実際のlambdaの中身とかはこちら