2010-05-19 6 views
2

Est-il possible de déplacer les fichiers temporaires (/tmp/stream*) générés par paperclip vers un autre emplacement comme /railsapp/public/tmp sans modifier tmpfiles pour l'ensemble de l'environnement de l'application? Je voudrais afficher un aperçu du fichier téléchargé si la validation échoue sur le modèle.Modifier l'emplacement des fichiers papermpip tmp

+0

Les fichiers de flux sont la «cuisine interne» du serveur Web, comme Slobodan l'a montré dans sa réponse. Vous ne devriez pas l'exposer directement à vos utilisateurs. Plus, une fois la demande terminée, le serveur web peut les supprimer, donc vous ne pouvez pas compter sur la requête suivante (en essayant d'afficher l'image), ils seront toujours là. –

+0

Je veux seulement lier au fichier stream * si le formulaire a échoué à la validation. Lorsque les erreurs de validation ont été corrigées par l'utilisateur et le modèle sauvegardé - je n'en ai plus besoin. – atmorell

Répondre

2

Ce n'est pas un paramètre Paperclip. Il utilise simplement le serveur web de fichier obtenu de l'utilisateur.

Vous devez définir ceci au niveau du serveur Web. Si vous utilisez Apache et des passagers que vous souhaiterez probablement ce paramètre:

http://www.modrails.com/documentation/Users%20guide.html#_passengertempdir_lt_directory_gt

+0

J'utilise nginx et thin .. hmmm Je ne veux pas exposer l'ensemble temp dir au monde. Je suppose que je pourrais relier les fichiers tmp paperclip à un répertoire dans le dossier public. (before_save) C'est un peu étrange que cela ne puisse pas être changé pour paperclip avec une option ou un paramètre. :/ – atmorell

+0

atmorell, les fichiers dans le répertoire tmp sont, comme son nom l'indique :), temporaires. Le serveur Web les obtient de l'utilisateur et les met dans tmp, où Rails/Paperclip peuvent les obtenir. Une fois que vous les avez, ils doivent être déplacés quelque part - et Paperclip le fait automatiquement. Comme Vlad l'a souligné: Paperclip ne crée pas de fichiers/tmp/stream *. Je ne sais plus exactement ce que vous voulez faire et pourquoi. –

+0

Supposons qu'un utilisateur soumette un formulaire et que la validation échoue. Le formulaire est préchargé avec les données du formulaire de publication. Le champ d'entrée/fichier est cependant vide. Ce que j'essaie de faire est de donner à l'utilisateur un aperçu du fichier téléchargé. La raison pour laquelle je demandais sur le déplacement des fichiers tmp paperclip, est parce que je ne sais pas s'il y a quelque chose dans le répertoire tmp rais qui pourrait être un risque de sécurité si déplacer le rail tmp dir vers app/public/tmp – atmorell

Questions connexes