我正在尝试FileUtils
在Heroku的tmp文件夹中创建一个名为'servers' 的目录:
# create servers folder is it doesn't exist dir = File.dirname("#{Rails.root}/tmp/servers") FileUtils.mkdir(dir) unless File.directory?(dir)
我也尝试mkdir
使用Heroku的控制台进行创建,但似乎没有创建:
sudo heroku run 'mkdir /app/tmp/servers' Running mkdir /app/tmp/servers on someapp... up, run.8611 sudo heroku run 'ls /app/tmp/.' Running ls /app/tmp/. on someapp... up, run.3195 cache heroku-buildpack-release-step.yml
我究竟做错了什么?
你可以写入文件系统,但当你这样做时,heroku run
它是一个一次性的dyno,所以完全独立于你的网络dynos,甚至是第二个dyno.它需要一个slug的新副本(来自您的上次部署) - 它们不共享相同的文件系统,并且在会话断开或终止时不会保留任何内容.
? heroku run bash Running bash on xxx... up, run.5673 ~ $ cd tmp ~/tmp $ mkdir foo ~/tmp $ cd foo ~/tmp/foo $ touch bah.txt ~/tmp/foo $ ls bah.txt ~/tmp/foo $
如果您退出并打开一个新会话
? heroku run bash Running bash on xxx... up, run.6709 ~ $ cd tmp ~/tmp $ ls cache heroku-buildpack-release-step.yml ~/tmp $