【发布时间】:2015-08-20 18:47:48
【问题描述】:
我到处都看到 heroku 在部署或扩展应用程序后会删除您对文件系统所做的更改,但在我的情况下,文件似乎会立即消失。
我的 rails 应用程序将文件上传到 public/uploads,然后延迟的作业尝试读取这些文件,当它尝试读取它们时找不到它们。
如果我在同一个线程中执行所有操作,它可以工作,但是当我尝试使用延迟作业或使用 heroku run bash 检查文件系统时,文件消失了。
为什么会这样?
【问题讨论】:
-
如果我没记错的话,上传到 heroku 的文件甚至不会在 heroku 服务器上创建。就像你把它们送到了一个沉洞。 :-D
-
我是这么认为的,但如果是这样的话,它在单线程版本中是如何工作的?我的代码正在执行 File.open("public/uploads/file","r") 并且在那种情况下工作得很好。
-
我猜他们会在每次请求终止后删除文件
-
啊!这是你的答案....显然它们在重新启动、重新部署、服务器从睡眠中唤醒等后被删除,等等stackoverflow.com/questions/11246736/…
-
看看:stackoverflow.com/questions/30408123/…。请注意,DelayedJob 也在其自己的测功机中运行。
标签: ruby-on-rails heroku