ho bisogno di usare la cartella tmp
su Heroku (cedro) per la scrittura di alcuni dati temporaneamente, sto cercando di farlo in questo modo:Heroku - come scrivere nella directory "tmp"?
open("#{Rails.root}/tmp/#{result['filename']}", 'wb') do |file|
file.write open(image_url).read
end
Ma questo errore prodotti
Errno::ENOENT: No such file or directory - /app/tmp/image-2.png
sto cercando questo codice e funziona correttamente su localhost, ma non posso farlo funzionare su Heroku.
Qual è il modo corretto di salvare alcuni file nella directory tmp
su Heroku (stack Cedar)?
Grazie
EDIT: sto metodo in esecuzione con Jobs differiti che ha bisogno di ha accesso al file tmp.
EDIT2: Quello che sto facendo:
files.each_with_index do |f, index|
unless f.nil?
result = JSON.parse(buffer)
filename = "#{Time.now.to_i.to_s}_#{result['filename']}" # thumbnail name
thumb_filename = "#{Rails.root}/tmp/#{filename}"
image_url = f.file_url+"/convert?rotate=exif"
open("#{Rails.root}/tmp/#{result['filename']}", 'wb') do |file|
file.write open(image_url).read
end
img = Magick::Image.read(image_url).first
target = Magick::Image.new(150, 150) do
self.background_color = 'white'
end
img.resize_to_fit!(150, 150)
target.composite(img, Magick::CenterGravity, Magick::CopyCompositeOp).write(thumb_filename)
key = File.basename(filename)
s3.buckets[bucket_name].objects[key].write(:file => thumb_filename)
# save path to the new thumbnail to database
f.update_attributes(:file_url_thumb => "https://s3-us-west-1.amazonaws.com/bucket/#{filename}")
end
end
ho in informazioni di database su immagini. Queste immagini sono memorizzate nel secchio Amazon S3. Devo creare miniature per queste immagini. Quindi sto esaminando un'immagine con un'altra immagine, caricando l'immagine, salvandola temporaneamente, quindi ridimensionandola e successivamente caricherò questa miniatura nel secchio S3.
Ma questa procedura non sembra funzionare su Heroku, quindi, come potrei farlo (la mia app è in esecuzione su Heroku)?
Poiché si dice che non esiste una directory in questa patch, forse si dovrebbe creare prima di usare? O vuoi sapere dove è il tmp standard su heroku? – fotanus
ricorda che heroku ha serie limitazioni sul file system! https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem – phoet
Anche se una richiesta per l'app ha creato un file tmp, il file è molto probabilmente andato, se i lavori in ritardo arrivano più tardi. – spickermann