2010-11-17 9 views
4

Comment puis-je télécharger un fichier avec un trombone via la console ou une tâche de rake? Je ne sais pas très bien comment cela fonctionne sans formulaire. Est-ce que quelqu'un a traité de cela?Rails, trombone, téléchargement d'une photo à partir d'une tâche râteau?


mise à jour

Je trouve ceci:

image = Image.new(:storage => File.open('/path/to/my/image.png', rb)) 

Mais je suppose que cela rend ma question un peu plus simple, dit ma photo était en fait en ligne (à différents domaines) et je Je voulais le prendre avec un trombone et le transformer et le télécharger sur mon serveur. Est-il possible de donner en quelque sorte File.open une URL?

Répondre

6

Essayez cette photo.

require 'open-uri' 
image = Image.new(:storage => open("http://path.to.the/image.png")) 

travaillé quand je l'ai essayé dans mon terminal je viens de faire:

require 'open-uri' 
image = open("http://i.stack.imgur.com/qjKuQ.jpg") 

qui a abouti à:

=> #<File:/var/folders/Zo/ZoJYH-A6Eg8GQ3pV0fIyhU+++TU/-Tmp-/open-uri20101117-5813-1h64t5k> 
+0

Hugo est juste ici, il vous suffit de passer un objet File à la configuration de l'accesseur sur votre modèle. –

+0

Ryan, je pense que le problème est que j'utilise S3 comme stockage., Des idées? –

+0

Finnaly cette méthode a résolu mon problème pour déplacer des photos de l'autre plate-forme! Mais il reste un problème. En utilisant cette méthode, paperclip enregistre la photo sans extension, car elle l'obtient à partir du fichier temporaire. Comment régler ceci? Merci! – Gediminas

1

Cependant, il enregistre les fichiers comme « open-uri12345sdf-1301fp " (sans extension) dans la base de données. Comment enregistrer le nom de fichier original dans le champ photo_file_name.

1

C'est un peu un bidouillage je pense mais je juste ai répliqué les dossiers avec l'objet ActionDispatch :: Http :: UploadedFile.new dans ma migration et l'ai couru comme cela.

Questions connexes