Cloud foundry 是否可以在CloudFoundry中下载应用程序的所有文件?

Cloud foundry 是否可以在CloudFoundry中下载应用程序的所有文件?,cloud-foundry,Cloud Foundry,是否可以将应用程序的文件下载到我的本地PC上,即执行与“推送”相反的操作?我不久前写了这篇Ruby Gist,它仍然可以工作,只需稍加调整或保持原样 我使用这个简单的脚本下载我应用程序中的所有日志文件,您可以调整它以获取应用程序文件夹中的所有内容 mkdir -p <appName>/app/data/logs for i in `cf files <appName> app/data/logs | awk '{print $1}'`; do c

是否可以将应用程序的文件下载到我的本地PC上,即执行与“推送”相反的操作?

我不久前写了这篇Ruby Gist,它仍然可以工作,只需稍加调整或保持原样


我使用这个简单的脚本下载我应用程序中的所有日志文件,您可以调整它以获取应用程序文件夹中的所有内容

    mkdir -p <appName>/app/data/logs
    for i in `cf files <appName> app/data/logs | awk '{print $1}'`; 
    do cf files <appName> app/data/logs/$i > <appName>/app/data/logs/$i; done
mkdir-p/app/data/logs
对于'cf files app/data/logs | awk'{print$1}'中的i;
执行cf文件app/data/logs/$i>/app/data/logs/$i;完成

最新版本的
cf
()通过使用下载插件简化了这一过程:

更多详细信息,请访问

编辑
正如Dharmi所指出的,只要您的应用程序成功完成了登台(即构建包运行并完成),Diego后端就无法使用此功能。您应该能够下载由CF构建的droplet,该droplet将包含您的应用程序代码等内容

例:

$cf应用程序&

更新(2019年10月2日)

确保使用
cf curl
--output
标志。如果您只是将
cf curl
的输出重定向到一个文件,您将在您的drop(或其他下载)的末尾得到一个额外的行尾字符。对于二进制下载,这可能会导致问题。有些工具只是忽略了额外的字符,如
tar
,但如果使用
cf push--droplet
上传一个droplet,则会导致应用程序失败


更新(2018年7月13日)

现在还有
cf local
,这是一个cf cli插件,可以做很多事情。它允许您轻松地导出和导入液滴。这可能是今后最简单的方法


好的,伙计。我也有同样的问题。最简单的方法是SSH上的SCP

为了尽可能地简化这个过程,我将以下步骤放在下面

毕竟 我想您的环境中已经安装了“Cf cli”。 请参见以下内容:

现在要登录到Cloud foundry SSH,我们需要做一些事情:

  • 在IBM应用程序中启用ssh
  • 获取SSH主机
  • 获取用户
  • 获取密码
  • 步骤01-启用SSH

    见以下官方参考资料:

    打开命令或终端写入:

    >cf登录-这就像是在说废话

    >cf启用ssh应用程序名称

    你真的想知道应用程序名!这是最基本的

    步骤2-获取服务器主机

    嗯。。。如果我必须解释什么是ssh主机,最好从这里回滚。如果没有,请运行命令(小笑话):

    cf curl/v2/info

    “app_ssh_endpoint”:“ssh.MY-DOMAIN.com:2222”

    结果是一个具有许多属性的json。 复制名为“app\u ssh\u endpoint”的字段。 请看“:”之后是用于填写Winscp表单或终端命令的ssh端口

    步骤3-连接您的用户名

    用户名由“cf:”+“GUID“+”/“+”实例ID”组成

    要获取GUID,请运行终端命令:

    cf app MY-AWESOME-app--guid

    返回一个长id,如:abcdefab-1234-5678-abcd-1234abcd1234

    实例ID是您的应用程序实例的序列号。第一个应用程序实例变为“0

    因此,我们将cf:my guid result/0作为用户名

    步骤4-获取临时密码

    此步骤检索一次性使用过程。就是这个!你只使用一次通行证。布乌特。。。每次连接到服务器或执行命令时,都可以执行此命令

    要获取pass run terminal命令,请执行以下操作:

    cf ssh代码

    返回小密码:abcdefab

    在此之后,我建议:

    如果您想像我一样下载整个“app/”文件夹,请将其压缩并使用winSCP图形界面或使用“scp”命令通过终端下载


    这不是直观的,但可以做到。祝你好运。

    我似乎没有可用的
    drop
    资源:{“code”:10000,“description”:“未知请求”,“错误代码”:“CF NotFound”}试试这个。因为这将以302作为回应。curl没有遵循重定向。从~/.cf/config.json中找到您的访问令牌并执行以下操作:“wget--header='Authorization:your token'一旦你下载了这个文件,我如何打开它?似乎不是以
    .zip
    的形式打开的。它是一个存档,我记不起它是zip还是tar gzip。如果您运行
    文件
    ,它会告诉您。或者,如果您在Windows上,您可以尝试使用存档/提取应用程序打开它。它可能会检测到正确的格式。谢谢!curl命令是在
    Diego
    后端唯一对我有效的命令。对于我(在Windows 7上),下载的文件是一个焦油球(因此,
    tar xvzf my droplet
    将提取文件),显然,这不再有效(
    cf version 6.12.2-24abed3-2015-07-15T14:20:44+00
    )。我得到
    cf:'file'不是已注册的命令。请参阅“cf帮助”
    谢谢,这非常有效,尽管听起来我的电脑要爆炸了。如果应用程序在Diego后端运行,cf-download将无法工作。
    $ cf app <app-name> --guid
    2836d5fe-35f7-4409-b27b-4ed308152bb4
    $ cf curl /v2/apps/2836d5fe-35f7-4409-b27b-4ed308152bb4/droplet/download --output my-droplet