相关疑难解决方法(0)

Heroku - 如何写入"tmp"目录?

我需要使用tmpHeroku(Cedar)上的文件夹来写一些临时数据,我试着这样做:

open("#{Rails.root}/tmp/#{result['filename']}", 'wb') do |file|
  file.write open(image_url).read 
end
Run Code Online (Sandbox Code Playgroud)

但这会产生错误

Errno::ENOENT: No such file or directory - /app/tmp/image-2.png
Run Code Online (Sandbox Code Playgroud)

我正在尝试这个代码,它在localhost上正常运行,但我不能让它在Heroku上运行.

将一些文件保存到tmpHeroku(Cedar堆栈)目录的正确方法是什么?

谢谢

编辑: 我正在运行延迟作业的方法,需要访问tmp文件.

编辑2: 我在做什么:

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)

        # …
Run Code Online (Sandbox Code Playgroud)

ruby directory ruby-on-rails heroku tmp

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

directory ×1

heroku ×1

ruby ×1

ruby-on-rails ×1

tmp ×1