我在Heroku上托管了一个Rails应用程序。该应用程序的一部分涉及将一些数据写入CSV,然后重命名文件
代码很简单,看起来像这样
CSV.open(file_path, "a") do |csv|
csv << some_data
end
File.rename(file_path, new_file_path)
当我在Rails控制台中运行此代码时,该文件被重命名,而当我阅读它时,一切似乎都很好。但是,当我退出控制台时,更改不会持续。当我重新进入控制台时,文件已恢复为原始状态。知道发生了什么吗?谢谢
Heroku磁盘空间不用于存储。它特定于实例。任何文件操作都应针对外部服务(例如S3)进行。
发生的情况是调用控制台时正在启动应用程序的实例。您正在写入文件系统。然后,当您退出控制台时,正在使用的实例会蒸发。
然后,当您再次调用控制台并且文件不存在时,您将启动一个新实例,因为该文件已写入另一个不再存在的实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句