【问题标题】:Rails & Heroku: Can't write into public directoryRails & Heroku:无法写入公共目录
【发布时间】:2015-07-13 22:40:26
【问题描述】:

我编写了一个脚本来从其他站点获取内容,并将其保存到我的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

【问题讨论】:

  • 您是否尝试过写入“tmp/”?请记住,它应该添加到您的存储库中,以便 Heroku 创建它
  • @davids,但是tmp/下的文件可以直接通过浏览器访问吗?不然怎么下载文件?
  • 如果您需要进一步控制您的应用程序/服务器,包括文件系统,我建议您在 VPS 中部署您的应用程序。例如,您可以在 Amazon AWS 中获得一个免费实例
  • @davids 很好,我稍后再试试。

标签: ruby-on-rails heroku


【解决方案1】:

Heroku dyno 上的存储应该被视为短暂的,因为重新启动 dyno 会导致保存的文件消失,并且该文件在其他 dyno 中不可见。

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

No permanent filesystem for Heroku?

【讨论】:

    猜你喜欢
    • 2011-10-10
    • 2012-02-08
    • 2023-03-31
    • 2018-04-30
    • 2013-10-15
    • 1970-01-01
    • 2011-01-30
    • 2013-10-17
    • 1970-01-01
    相关资源
    最近更新 更多