如何从已部署的应用程序创建的 cloudfoundry 获取输出文件?

How to obtain output files from cloudfoundry that deployed application has created?

我已经在 cloudfoundry 上部署了一个 windows exe,现在我想从 cloudfoundry 取回该 exe 生成的文件。 有什么方法可以使用批处理脚本检索文件吗?

重要的是要注意不要向本地文件系统写入任何重要内容。本地文件系统是 短暂的 所以如果你的应用程序 crashes/restarts 在你获取文件之前出于任何原因那么它们就消失了。

话虽如此,如果您有一个正在执行某些处理并生成输出文件的应用程序,处理此问题的推荐方法是让进程将这些文件写入外部且持久的地方,例如数据库、SFTP 服务器或 S3 兼容服务。简而言之,将文件推送到某个地方,而不是试图进入容器获取文件。


如果您必须将它们从容器中取出,您有两种选择:

  1. 运行 容器中的小型 HTTP 服务器并公开其上的文件。确保您适当地保护服务器以防止未经授权访问您的文件。

  2. 运行 scpsftp 并下载文件。可在 here 找到相关说明,但粗略地说,您 运行 cf app app-name --guid 获取应用程序 GUID,cf ssh-code 获取密码,然后 scp -P 2222 -oUser=cf:<insert app-guid>/0 ssh.system_domain:my-remote-file.json ./获取名为 my-remote-file.json 的文件。显然,将 path/file 更改为您要下载的内容。