我是heroku的新手。我已将我的应用程序部署到heroku,其中有时钟运行的python脚本 在那个脚本中,我需要使用/ tmp文件夹中的heroku的Ephemeral文件系统写入xml文件,我需要该文件的url,这样我就可以使用这个url做一些其他从这个文件中读取数据的处理。
答案 0 :(得分:2)
在Heroku上,您无法在/tmp
公开访问文件。通过http
访问该文件内容的唯一方法是将该文件传输到其他地方,例如Amazon S3,或scp
将其传输到其他服务器。
考虑一下:假设您有10个dynos正在运行,并且有人发出请求导致在newFile
中创建新文件/tmp
。嗯,只有/tmp
只在你的一个dynos上。如果下一个请求负载均衡器将您定向到另一个dyno,则该文件不存在。而且,你刚刚创建的newFile
的dyno可能在5秒后甚至不存在! Heroku一直在上下旋转dynos。
HTTP是Stateless Protocol。如果你要正确地设计你的系统,你应该这样对待它。