Репликация MySQL и Django FileField - PullRequest
2 голосов
/ 16 ноября 2010

У меня есть настройка репликации MySQL, и она хорошо копирует данные базы данных. Тем не менее, я также использую FileField и ImageField, и файл загружен на FS. Я, вероятно, просто буду использовать rsync для репликации вручную, но есть ли лучший способ?

Я знаю, как хранить значения ключей. Но для этого проекта я стараюсь свести к минимуму количество задействованных технологий и придерживаться простых вариантов. Я успешно использовал rsync для этого раньше, но мне было интересно, есть ли у других, кто сделал это, какие-нибудь новые классные инструменты (или даже оболочки rsync), которые работают лучше.

Ваш опыт ценится.

1 Ответ

1 голос
/ 16 ноября 2010

Я не искал, чтобы узнать, сделал ли это кто-нибудь, но вы можете написать свой собственный код в Django, чтобы удаленно скопировать файл на ваш целевой сервер (т.е. SFTP).

Вариант 1 на этом фронте: создайте свое собственное поле формы, которое расширяет поля «Изображение и файл», которые выполняют эту загрузку. Вариант 2: в вашей форме / представлении вызовите дополнительную функцию, которая выполняет загрузку. Вариант 3: переопределите что-то в коде Django для автоматической обработки этого для полей изображений и файлов (вероятно, не рекомендуется, если есть какой-то хитрый способ, о котором я не думаю).

Вот информация об использовании SFTP в Python: SFTP в Python? (независимо от платформы)

Если вы используете что-то вроде Amazon CloudFront или Buckets, то вы можете использовать Boto для обработки загрузки (я считаю): http://aws.amazon.com/code/827?_encoding=UTF8&jiveRedirect=1 (если нет, вероятно, есть другие библиотеки Python, которые могут помочь ).

...