2010-06-28 3 views
3

J'ai besoin de télécharger des fichiers, puis de les analyser à l'aide paperclip?Comment puis-je changer le répertoire de téléchargement de paperclip sur heroku en/tmp?

Actuellement, il est téléchargé dans le répertoire/dossier système, ce qui est interdit dans Heroku.

Je n'ai pas besoin que les téléchargements soient persistants ... Je les analyse et les stocke ensuite. Donc, j'aimerais pouvoir sauvegarder dans/tmp, puis analyser, et ensuite le laisser tomber plus tard.

Réflexions sur la façon de le faire (si je dois le faire)?

+0

salut , la solution que vous avez spécifiée comme paramètre: path => "" ne fonctionne pas. voulez-vous dire chaîne vide par "" ou autre chose? comme en définissant un chemin dans "". –

+0

non je ne pense pas que ce soit pour définir une chaîne vide, c'était pour définir le chemin réel ... – Angela

+0

le format est dans la réponse pour: url – Angela

Répondre

2

Les docs d'Heroku disent utiliser Tempfile.

Eh bien, il est dit dans la doc:

Il y a deux répertoires qui sont inscriptible: ./tmp et ./log (sous votre racine de l'application ). Si vous souhaitez déposer un fichier temporairement pendant la durée de la demande, vous pouvez écrire à un nom de fichier comme # {RAILS_ROOT}/tmp/myfile _ # {Process.pid}. Il n'y a aucune garantie que ce fichier sera là sur les demandes ultérieures (bien qu'il puisse être), donc cela ne devrait pas être utilisé pour tout type de stockage permanent

Ensuite, si vous cliquez sur le Adam Wiggins lien ci-dessous, il dit que c'est disponible via l'interface Tempfile. L'utilisation de Tempfile est simple, mais il se peut que votre fichier n'existe pas si heroku considère les opérations de lecture/écriture comme des processus différents.

# tempfile_example.rb 
require 'tempfile' 

# defaults to Dir::tempdir 
x = Tempfile.new('imagefile.png') 

puts x.path 

Edit: La réponse

La réponse est en fait de définir: path => "" ... mais vous étiez près .... - Angela

+0

Salut et merci. Devrais-je coller ce code dans le même contrôleur que celui que j'appelle paperclip? Je suppose que je ne suis pas clair comment l'utiliser dans un environnement Paperclip, car c'est la gemme trombone qui le met dans le dossier du système. – Angela

+0

@Angela: Je ne l'ai jamais utilisé paperclip, mais il semble que vous pouvez spécifier l'URL dans les options 'de has_attached_file', par exemple ': url =>"/tmp /: pièce jointe /: id /: style_: nomfichier "' –

+0

Les options sont documentées ici: http://dev.thoughtbot.com/paperclip/classes/Paperclip/ClassMethods.html –

Questions connexes