【发布时间】:2014-01-29 03:30:58
【问题描述】:
是否可以将应用程序的文件下载到我的本地PC,即执行与“推送”相反的操作?
【问题讨论】:
标签: cloud-foundry
是否可以将应用程序的文件下载到我的本地PC,即执行与“推送”相反的操作?
【问题讨论】:
标签: cloud-foundry
只要您的应用程序成功完成暂存(即构建包运行并完成),您就应该能够下载由 CF 构建的 Droplet。其中将包含您的应用程序代码。
例如:
$ cf app <app-name> --guid
2836d5fe-35f7-4409-b27b-4ed308152bb4
$ cf curl /v2/apps/2836d5fe-35f7-4409-b27b-4ed308152bb4/droplet/download --output my-droplet
另见https://apidocs.cloudfoundry.org/2.6.0/apps/downloads_the_bits_for_an_app.html & http://v3-apidocs.cloudfoundry.org/version/3.50.0/#download-package-bits
更新(2019 年 10 月 2 日)
确保使用cf curl 的--output 标志。如果您只是将cf curl 的输出重定向到一个文件,您最终会在您的Droplet(或其他下载)的末尾有一个额外的行尾字符。对于二进制下载,这可能会导致问题。有些工具会简单地忽略 tar 这样的额外字符,但如果您使用 cf push --droplet 上传 Droplet,则会导致您的应用失败。
更新(2018 年 7 月 13 日)
现在还有cf local,这是一个cf cli 插件,可以做几件事情。它允许您做的一件事是轻松导出和导入液滴。这可能是最简单的方法。
【讨论】:
droplet 资源:{ "code": 10000, "description": "Unknown request", "error_code": "CF-NotFound" }跨度>
.zip 的形式打开。
file <name>,它会告诉您。或者,如果您使用的是 Windows,则可以尝试使用存档/提取应用程序打开它。它可能会检测到正确的格式。
Diego 后端上唯一对我有用的东西。对我来说(在 Windows 7 上),下载的文件是一个 tar 球(所以,tar xvzf my-droplet 将提取文件)
cf (Cloud Foundry's command line interface) 的最新版本通过使用 下载插件 使这变得更简单:https://github.com/ibmjstart/cf-download
来自http://blog.ibmjstart.net/2015/05/22/cf-download/一位作者的更多详细信息
编辑 正如 Dharmi 所指出的,这不适用于 Diego 后端 https://github.com/ibmjstart/cf-download/issues/12
【讨论】:
我使用这个简单的脚本来下载我的应用程序中的所有日志文件,您可以对其进行调整以获取应用程序文件夹中的所有内容
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
【讨论】:
cf version 6.12.2-24abed3-2015-07-15T14:20:44+00:00)。我收到cf: 'file' is not a registered command. See 'cf help'
好吧,伙计。我有同样的麻烦。最简单的方法是 SSH 上的 SCP。
为了让这一切变得更简单,我提出了以下步骤。
毕竟 我假设您已经在您的环境中安装了“Cf cli”。 看看如何在:https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
现在要登录 Cloud Foundry SSH,我们有一些事情要做:
步骤 01 - 启用 SSH
查看官方参考资料:https://docs.cloudfoundry.org/devguide/deploy-apps/ssh-apps.html
打开CMD或终端写入:
> cf login - 就像 bla bla bla
> cf enable-ssh 应用名称
您真的想知道应用名称!这是基础...
第 2 步 - 获取服务器主机
嗯...如果我必须解释什么是 ssh 主机,最好从这里回滚。如果没有,运行命令(小玩笑):
cf curl /v2/info
“app_ssh_endpoint”:“ssh.MY-DOMAIN.com:2222”
Result 是一个具有许多属性的 json。 复制名为“app_ssh_endpoint”的字段。 看看“:”后面是填写Winscp表单或者终端命令的ssh端口。
第 3 步 - 连接您的用户名
用户名由“cf:”+“GUID”+“/”+“InstanceID”组成。
要获取 GUID 运行终端命令:
cf app MY-AWESOME-APP --guid
返回一个长 id 像:abcdefab-1234-5678-abcd-1234abcd1234
实例 ID 是您的应用实例的序号。第一个应用实例变为“0”。
所以我们有 cf:my-guid-result/0 作为用户名。
第 4 步 - 获取临时密码
此步骤检索单次使用通行证。这是!您只能使用一次通行证。 Buuuut...您可以在每次连接到服务器或执行命令时执行此命令。
要通过运行终端命令:
cf ssh 代码
返回小密码:abcdefab
在此之后我推荐:
如果你想像我一样下载整个“app/”文件夹,压缩它并使用winSCP图形界面或终端使用“scp”命令下载。
这并不直观,但可以做到。祝你好运。
【讨论】:
我不久前写了这个 Ruby Gist,它应该仍然可以通过一些小的调整或按原样工作..
【讨论】: