2012-05-11 3 views
3

J'ai une configuration multi-serveur, avec deux boîtes servant des requêtes dynamiques via Django, et un serveur de fichiers statiques/multimédia, servant avec NginX.Transfert de fichiers entre l'application et le serveur multimédia

Ma question est la suivante: quelle est la méthode recommandée pour transférer les fichiers multimédias téléchargés des boîtes de django vers le serveur multimédia?

Le problème principal est les fichiers téléchargés via l'admin. Tout le contenu généré par l'utilisateur est placé dans une file d'attente de céleri, qui extrait les fichiers à l'aide de sftp et les redimensionne. Les fichiers téléchargés dans l'admin doivent cependant être traités dans la demande afin qu'ils soient prêts lorsque le contenu est modifié.

J'ai essayé deux options:

  • Utilisation du back-end sftp de django-entrepôts. Cela me donne des erreurs du paramiko sous-jacent.
  • En utilisant un montage NFS, qui m'a donné beaucoup de maux de tête avec des autorisations.

Alors, quelle est la méthode recommandée? Ou comment les autres font-ils cela? SFTP, SCP, SSHFS, NFS, CIFS, WebDav, etc?

+2

.... rsync .... –

+0

Prenez soin de préciser comment j'accomplis ce que je veux avec rsync? Avoir un cronjob rsync un dossier toutes les minutes ne suffit pas, car cela peut montrer des messages d'administration avec une image défaillante pendant une minute ou plus (les images doivent être redimensionnées après le transfert aussi). – Tino

Répondre

0

Vos téléchargements de fichiers sont-ils liés à des modèles? Si tel est le cas, définissez le support de stockage sur votre serveur multimédia et, lorsque vous créez/enregistrez l'objet défini dans votre fichier models.py dans lequel FileField utilise le fichier téléchargé, il l'enregistre automatiquement sur le support de stockage spécifié. Voici les docs: https://docs.djangoproject.com/en/dev/topics/files/#the-built-in-filesystem-storage-class

+0

Oui, je sais. C'est ce que j'utilise. Le fait est que la méthode de transfert (sftp) ne fonctionne pas de manière fiable. Donc je me demandais ce que les gens utilisent dans ce cas. – Tino

Questions connexes