Ho letto e provato varie app di thumbnailing per Django. Questi sono i requisiti:Django easy-thumbnails vs sorl-thumbnail differences
Tutte le miniature generate devono essere salvati in un secchio S3 separata dalle immagini originali, ovvero classe separata di stoccaggio
Quando l'istanza dell'immagine viene eliminata, il file di immagine originale insieme tutte le miniature generate devono essere eliminate anche
Ridurre al minimo le inefficienze costose, ad es. Recupero l'URL di una miniatura per serializzare in DRF non dovrebbe guardare in S3 secchio per vedere se esiste ogni volta, ecc
VersatileImageField fallisce il primo requisito. ImageKit fallisce il secondo requisito. Il terzo requisito è dove sono più confuso; Sto cercando di informarmi sulle migliori pratiche ma l'informazione è frammentata e non sono sicuro di prendere una decisione basata su ciò che ho imparato finora.
Da quello che ho letto, la mia impressione è che il comportamento più efficace sarebbe la seguente:
- generare la miniatura immediatamente dopo salvare e assumere esiste sempre
- per accedere miniature, generare il URL sulla base di nome file e miniatura dimensioni/qualità dell'immagine originale, dal momento che sappiamo che esiste sicuramente
- post_delete cancellerà tutte le miniature e file originale
Sarei molto interessato a conoscere le differenze negli approcci che le miniature facili e le miniature in miniatura prendono (se si allineano con il processo che ho brevemente delineato sopra o se hanno qualcosa di ancora più efficiente) e i vantaggi/svantaggi in ciascuna delle loro metodologie.
Come hai risolto il problema? – wiesson
@weisson Ho provato tutte e tre queste app, tutte erano imperfette e troppo supponenti (non c'è altro modo per farlo). Sto usando la thumbnailing lato client con pica.js. Il blob dell'immagine viene caricato direttamente su S3, non è necessario alcun ImageField o cuscino. – dtgq