Rails& Heroku:无法写入公共目录

时间:2015-07-12 14:41:11

标签: ruby-on-rails heroku

我编写了一个脚本来从其他站点获取内容,并将其保存到我的public/目录中。由于我的网络环境恶劣,我将其部署到Heroku并希望它能够在本地进行,而不是在本地进行。

就像这样简单的

  movie_file = "#{Rails.root}/public/movie_list#{year}.json"
  File.open(movie_file, "w"){|f| f.write(JSON.pretty_generate($movie_list))}

然而,当我在heroku中运行它时(只有一个rake task),它似乎无法写入public/目录,我得到no such page error。我找到了这个答案:Problems with public directory when deploying Node.js app with Heroku

但原始文章在heroku中是不可能的,我不确定它是否仍然是真的。

我想知道: 如果有任何解决方法我可以将其保存到服务器(可能是public/以外的其他内容),然后我可以将其下载到我的计算机上?

或者,不是将文件转换为public/,也许我可以将其上传到其他可用空间?

======================

更新: 最后,我首先将文件保存到tmp,然后将其保存到Qiniu(中国对口AWS),然后将其保存到AWS

1 个答案:

答案 0 :(得分:2)

Heroku dyno上的存储应该被认为是短暂的,因为dyno重启将导致保存的文件消失,并且该文件将不会从其他dynos中看到。

您应该使用dyno将文件上传到永久存储,例如AWS,您可以通过浏览器下载它。

No permanent filesystem for Heroku?