Images to be resized when they are being requested, rather than when being stored. Full size images should be stored in S3, so they can be adjusted for the device making the request. Resizing should also take the orientation of the image into account, resizing by the smallest edge first and then cropping.
Possible Solution
Upload
Store directly to S3
Request
Pull from S3
Find most interesting part of the photo with smartcrop.js.
Refactoring Image Resizing
Images to be resized when they are being requested, rather than when being stored. Full size images should be stored in S3, so they can be adjusted for the device making the request. Resizing should also take the orientation of the image into account, resizing by the smallest edge first and then cropping.
Possible Solution
Upload
Request