I've been reading about and trying various thumbnailing apps for Django. These are the requirements:
All generated thumbnails must be saved in a S3 bucket separate from the original images, i.e. separate storage class
When the image instance is deleted, the original image file along with all generated thumbnails must be delete as well
Minimize expensive inefficiencies, ex. Fetching the url of a thumbnail to serialize in DRF shouldn't look in S3 bucket to see if it exists every time, etc.
VersatileImageField fails the first requirement. ImageKit fails the second requirement. The third requirement is where I'm most confused; I'm trying to inform myself on best practices but the information is fragmented and I'm not confident in making a decision based on what I've learned so far.
From what I've read, my impression is that the most efficient behavior would be as follows:
- generate the thumbnail immediately upon save and assume it always exists
- to access thumbnail, generate the URL based on the original image's filename and thumbnail dimensions/quality, since we know it definitely exists
- post_delete will delete all thumbnails and original file
I'd be most interested in learning about the differences in the approaches that easy-thumbnails and sorl-thumbnail take (if they align with the process I very briefly outlined above or if they have something even more efficient), and the advantages/disadvantages in each of their methodologies.