Heroku - как записать в каталог «tmp»?
Мне нужно использоватьtmp
папку на Heroku (Cedar) для записи некоторых временных данных, я пытаюсь сделать это следующим образом:
open("#{Rails.root}/tmp/#{result['filename']}", 'wb') do |file|
file.write open(image_url).read
end
Но это выдает ошибку
Errno::ENOENT: No such file or directory - /app/tmp/image-2.png
Я пытаюсь этот код, и этоработает правильно на локальном хосте, но я не могу заставить его работать на Heroku.
Как правильно сохранить некоторые файлы вtmp
справочник по Heroku (кедровая стопка)?
Спасибо
РЕДАКТИРОВАТЬ: Я использую метод с отложенными заданиями, который должен иметь доступ к файлу tmp.
EDIT2: Что я делаю:
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
У меня есть в базе данных информация об изображениях. Эти изображения хранятся в корзине Amazon S3. Мне нужно создать эскизы для этих изображений. Поэтому я перебираю одно изображение за другим, загружаю изображение, временно сохраняю его, затем изменяю его размер, а затем я загружаю этот эскиз в корзину S3.
Но эта процедура неКажется, я работаю над Heroku, так как я могу это сделать (мое приложение работает на Heroku)?