我在Heroku上有一个rails应用程序。部分应用程序涉及将一些数据写入CSV,然后重命名文件
代码非常简单,看起来像这样
CSV.open(file_path, "a") do |csv|
csv << some_data
end
File.rename(file_path, new_file_path)
当我在rails控制台中运行此代码时,文件被重命名,当我读取它时,一切似乎都很好。但是,当我退出控制台时,更改不会持续存在。当我重新进入控制台时,文件已恢复到其原始状态。知道发生了什么事吗?感谢
答案 0 :(得分:3)
Heroku磁盘空间不适合存储。它特定于实例。任何文件操作都应该针对外部服务,例如S3。
当您调用控制台时,正在启动应用程序的实例。您正在写入文件系统。然后,当您退出控制台时,您使用的实例会进行蒸发。
然后,当您再次调用控制台并且文件不存在时,您将启动一个新实例,因为它已写入另一个不再存在的实例。