我正在开发一个试图执行以下操作的应用程序:
如果我在本地运行应用程序,一切正常,但是当我尝试在heroku上运行应用程序时,它只是不起作用。该脚本运行并且没有错误,但文件不会传输到tmp文件夹。
我是否需要做一些不同的事情来存储heroku tmp文件夹中的文件?文件名中是否需要Process.pid?
我正在使用AWS :: S3 :: S3Object.url_for生成临时网址以从s3获取文件
我正在使用以下代码来获取文件:
Net::HTTP.start("s3.amazonaws.com") { |http|
resp = http.get(file_path)
open("#{Rails.root}/tmp/files/#{tmp_save_path}", "wb") { |file|
file.write(resp.body)
}
}
感谢您的帮助。
答案 0 :(得分:6)
除非你有更多的代码片段,否则我的猜测是Heroku上不存在目录“#{Rails.root} / tmp / files / ...”(这应该是提升:Errno::ENOENT: No such file or directory
) 。在每次通话之前尝试使用mkdir_p
创建它(记住Heroku将清除tmp)。您需要从路径中解析出该文件夹(请参阅file utilities)。