Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generating Thumbnails on Client

My team and I are building an iOS application. We allow technicians in the field to upload images for certain issues they are resolving on technical equipment. It will be important to zoom in (so keep quality relatively high) when these images are uploaded to S3.

Recently we decided to add thumbnails because it will be much faster when others browse the iOS app, rather than downloading a 1.5-2.5mb image.

My co-worker decided the best way to handle this is to generate a 200-500kb thumbnail in iOS then upload the image and the thumbnail to s3.

I voiced my concern that some of our technicians may be in some parts of the world where internet is slow and data usage is limited. So doing all this additional work on the device and uploading makes no sense to me. However the team considers this a good solution and will move forward. I've shown them easy examples of how to generate thumbnails from S3 and Lambda automatically on the server... allowing us to either upload higher fidelity images with the additional bandwith or just increase the speed of the app by uploading much less. Sometimes a user may upload as many as 100 images... meaning an additional 20-50mb...

Anyways I wanted to hear some answers about how you guys think the best way to handle this is, mainly for my own sanity check.

like image 431
agrublev Avatar asked Sep 29 '16 00:09

agrublev


1 Answers

I don't completely comprehend the intricacies of your project, but from experience, I have one word for you - Cloudinary. As opposed to S3, which a general purpose Cloud storage solution, cloudinary is designed to handle images.

We have a 200,000 hits a day online classified app that handles tens of thousands of photos daily. And cloudinary provides an extremely mean solution for all our needs. We have uploads by users from their mobile and desktop devices, bookmarking of those images, CDN based serving, and thumbnail generation.

Did I mention they have thumbnail generation built in? They have lots of other features as well, including

  • Resize and Crop
  • Optimized JPEG Custom Crop
  • Face Thumbnail
  • Rotated Circular Thumbnail
  • Zoom Effects and Zoom Image Overlay
  • Watermark Image
  • Optimized WebP
  • Overlay, Border, Shadow Text Overlay, Border, Shadow etc.

The admin console is pretty kickass too, with all of the above features available for you to configure over the cloud. And it fits well with pretty much any application (we use it in our internal Ruby, Go, NodeJS services, our Web Application and our iOS and Android apps as well). I'm not paid to sell Cloudinary to you, but I can vouch that if it is image based services I needed, I would go for Cloudinary any day over S3. Major players like EBay and TED etc. use it for their image requirements.

like image 119
nikjohn Avatar answered Sep 19 '22 15:09

nikjohn