Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I change the upload directory for paperclip on heroku to /tmp?

I need to upload files and then parse them using paperclip?

Currently it is uploaded in the /system folder, which isn't allowed in heroku.

I don't need the uploads to be persistent...I parse it and then store them.

So I'd like to be able to save into /tmp and then parse, and then let it get blown away later.

Thoughts on how to do this (if I should do this)?

like image 566
Satchel Avatar asked Nov 06 '22 11:11

Satchel


1 Answers

Heroku's docs say to use Tempfile.

Well, it says in the doc:

There are two directories that are writeable: ./tmp and ./log (under your application root). If you wish to drop a file temporarily for the duration of the request, you can write to a filename like #{RAILS_ROOT}/tmp/myfile_#{Process.pid}. There is no guarantee that this file will be there on subsequent requests (although it might be), so this should not be used for any kind of permanent storage

Then, if you click on the Adam Wiggins link below that, he says this is available through the Tempfile interface.

Using Tempfile is easy, but your file may not exist if heroku considers read/write file operations different processes.

# tempfile_example.rb
require 'tempfile'

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

puts x.path

Edit: The Answer

The answer is actually to set :path => " " ... but you were close.... – Angela

like image 132
Jim Schubert Avatar answered Nov 11 '22 02:11

Jim Schubert