Я читал и пробовал различные миниатюрные приложения для Django. Таковы требования:Django easy-thumbnails vs sorl-thumbnail difference
Все сгенерированные эскизы должны быть сохранены в ведре S3 отдельно от исходных изображений, то есть отдельный класс для хранения
Когда экземпляр изображения удаляется, исходный файл изображения вместе с все созданные эскизы должны быть удалены также
Минимизировать дорогие неэффективности, например. Извлечение URL уменьшенного изображения для сериализации в ФПИ не должны смотреть в S3 ведро, чтобы увидеть, если она существует каждый раз, и т.д.
VersatileImageField проваливает первое требование. ImageKit не выполняет второе требование. Третье требование - это то, где меня больше всего смущает; Я пытаюсь информировать себя о лучших практиках, но информация фрагментирована, и я не уверен в принятии решения на основе того, что я узнал до сих пор.
Из того, что я прочитал, у меня сложилось впечатление, что наиболее эффективное поведение будет выглядеть следующим образом:
- генерировать эскиз сразу после сохранения и предположим, что всегда существует
- для доступа миниатюру, генерировать URL на основе исходного изображения имя файла и уменьшенные размеры/качество, так как мы знаем, что это, безусловно, существует
- post_delete будут удалены все эскизы и исходный файл
Мне было бы очень интересно узнать о различиях в подходах, которые легко поддаются эскизам и эскизам сорло (если они совпадают с процессом, который я кратко изложил выше, или если у них есть что-то еще более эффективное), а также преимущества/недостатки в каждой из их методологий.
Как вы решили проблему? – wiesson
@weisson Я пробовал все три из этих приложений, все были несовершенными и слишком упрямыми (нет другого пути для этого). Я использую миниатюру на стороне клиента с pica.js. Кадр изображения загружается непосредственно на S3, без ImageField или подушки. – dtgq