如何从heroku服务器下载当前更改的文件?
我构建了一个PHP应用程序,在Heroku上运行。
如果我使用$ git clone git@heroku.com:myappli.git -o heroku
,那么它会将我的原始项目文件从我的计算机上传到Heroku服务器吗?
如果我使用$ heroku git:clone -a myappli
,那么这会下载整个项目文件到我的计算机吗?
如何从Heroku服务器下载我的文件(logfill .txt) ?
像大多数PaaS提供商一样,Heroku不提供持久的文件系统:
短暂的文件系统每个dyno都有自己的临时文件系统,以及最近部署的代码的新副本。在dyno的生命周期中,它运行的进程可以将文件系统用作临时的刮擦板,但是写入的文件对任何其他dyno中的进程都不可见,并且写入的任何文件将在dyno停止或重新启动的那一刻被丢弃。
这意味着每次部署创建或修改的文件时都将丢失或恢复到上次提交的状态。在Heroku上创建自己的日志文件可能不是一个好主意。
但是,Heroku会自动记录任何打印出来的标准输出或标准错误:
写入日志
写入标准输出(
stdout
)或标准错误(stderr
)的任何内容都被捕获到日志中。这意味着您可以在应用程序代码的任何地方使用简单的输出语句进行日志记录。
可以使用heroku logs
命令检索日志。
尝试使用PHP的error_log
函数来编写日志。如果你使用的是像Monolog这样的日志库,你可能需要将其配置为输出到php://stderr
而不是文件。
最后,您可以写入任意文件,如logfilled.txt
,并使其通过HTTP访问,然后使用常规web浏览器、wget
、curl
或任何其他工具下载它。请注意,您几乎肯定希望围绕此构建一些身份验证;使用Heroku的日志工具是一个更好的选择。