如何从heroku服务器下载我当前更改的文件?
我构建了一个在Heroku上运行的PHP应用程序。
如果我使用$ git clone git@heroku.com:myappli.git -o heroku
,那么我会将原始项目文件从我的计算机上传到Heroku服务器吗?
如果我使用$ heroku git:clone -a myappli
,那么这会将整个项目文件下载到我的电脑吗?
如何从Heroku服务器下载我的文件(logfilled.txt)?
答案 0 :(得分:1)
与大多数PaaS提供商一样,Heroku does not provide a persistent filesystem:
短暂的文件系统
每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,其运行进程可以将文件系统用作临时暂存器,但是任何其他dyno中的进程都不会看到所写的文件,并且在dyno停止或重新启动时,所写的任何文件都将被丢弃。
这意味着每次部署已创建或修改的文件都将丢失或恢复为上次提交的状态。在Heroku上创建自己的日志文件可能不是一个好主意。
然而,Heroku自动logs anything printed to standard out or standard error:
写入日志
写入标准输出(
stdout
)或标准错误(stderr
)的任何内容都会被捕获到您的日志中。这意味着您可以使用简单的输出语句从应用程序代码中的任何位置进行日志记录。
记录may be retrieved using the heroku logs
command。
尝试使用PHP的error_log
函数来编写日志。如果您使用的是Monolog等日志记录库,则可能需要将其配置为输出到php://stderr
而不是文件。
最后,您可以写入logfilled.txt
这样的任意文件,并通过HTTP访问,然后使用常规网络浏览器wget
,curl
或任何其他工具下载。请注意,您几乎肯定会想要围绕此构建一些身份验证;使用Heroku的日志工具是一个更好的选择。