У нас имеется обширная база кодов, и мы добавили в уравнение серверы с балансировкой нагрузки с одним главным сервером.Существуют различные приложения, которые содержат модели с загруженными файлами и изображениями, которые работают нормально ... Однако это поднимает очевидную проблему задержки rsync.Rsync находится в crontab и настроен на запуск каждую минуту, но это все еще означает, что между созданным контентом и его фактическим существованием на веб-серверах существует потенциальная задержка в 59 секунд.
Я хотел бы иметь возможность зарегистрироватьсякакой-то обработчик 'post file change', запускающий rsync при каждой загрузке нового файла.Я не могу найти ничего подобного, хотя!В Django есть обработчики выгрузки файлов, но, похоже, они имеют дело только с реальным потоком выгрузки, а не с файлом, который после этого сохраняется в файловой системе.
Лучший подход, который я вижу, - это создать простые расширения для FileField,FieldFile, ImageField и ImageFieldFile как часть моего проекта и подключаются к методам сохранения и удаления в FileField.По сути, для создания пользовательских полей File и Image с этим добавленным поведением.Это не очень сложно сделать, но это не кажется мне самым элегантным решением.Мне нужно будет рассказать Сауту о моих новых полях, обновить каждую модель, на которую влияют, а затем создать орды миграций на юг (которые, я уверен, будут конфликтовать с некоторым кодом, который мы ожидаем).
I 'Я также изучаю возможность создания собственного класса Storage для проекта, но я нервничаю из-за того, что это имеет далеко идущие последствия для других частей кода.
Не могу поверить, что никто не сталкивался с этой проблемойраньше, есть ли канонический подход?
Большое спасибо!