Good library. API can be a bit quirky. Like if you want to read image size before and/or after a resize or if you do or don't want to respect the image orientation/rotation in the image meta data. I usually have to convert to a buffer and then back to Sharp again for it to reload the changes but it works!
Been using (and occasionally contributing to) Sharp for quite a while, both professionally and personally. Great library to have at hand when you need to deal with images.
Also worth mentioning libvips[0] the underlying engine behind sharp. We use the golang wrapper at work and love the simplicity and speed (ofc)<p>[0]<a href="https://github.com/libvips/libvips" rel="nofollow">https://github.com/libvips/libvips</a>
It is an amazing library! Been using it for years. It is used in a number of projects I've created including <a href="https://benhouston3d.com" rel="nofollow">https://benhouston3d.com</a> and <a href="https://threekit.com" rel="nofollow">https://threekit.com</a> for auto image resizing, format conversion and optimization.
Been using this forever in CloudFront behaviors to auto-resize images. Thanks for the work, Sharp!
We're doing the same! The Lambda function also has an authentication layer, so we can protect user-uploaded assets.
Interesting! Can you tell me more how you use CloudFront (cache) behaviours with sharp?
Lots of ways to do this but generally you attach a Lambda function to an origin response. If the path meets specific conditions (is 404/403, contains specific query string param) then run the Lambda function.<p>So imagine if you have:<p>original.jpg<p>Then just return it from the origin.<p>But imagine if you have original.jpg?size=150<p>Run the Lambda function (in this case a Sharp resize function) on the original.jpg file and return it. It'll get cached so the next time someone calls original.jpg?size=150 it just return the 150px width image without running any function as there was never a need to hit the origin.
Sharp is great. Used it at projects at scale and it never let me down.