我想将我的config.yml文件从我的本地django app目录复制到我的heroku服务器,但我不知道如何获取heroku的user@host.com格式。
我尝试过'heroku run bash'
scp /home/user/app/config.yml
我不确定如何在
中获取它scp user@myhost.com:/home/user/dir1/file.txt user@myhost.com:/home/user/dir2'
格式
答案 0 :(得分:23)
正如@ tamas7所说它已经防火墙,但你的本地机器也可能是防火墙。因此,除非您有可通过Internet访问SSH的私人服务器,否则您将无法进行scp。
我个人使用transfer.sh免费和open source服务。
将config.yml
上传到它:
$ curl --upload-file ./config.yml https://transfer.sh/
https://transfer.sh/66nb8/config.yml
然后从任何地方下载它:
$ wget https://transfer.sh/66nb8/config.yml
答案 1 :(得分:6)
根据http://www.evans.io/posts/heroku-survival-guide/传入的连接被防火墙关闭。在这种情况下,您需要从Heroku服务器接近本地计算机。
heroku run bash
scp user@mylocalmachine:/home/user/dir/file.txt .
答案 2 :(得分:0)
如果您需要下载整个存储库,例如要恢复本地不再使用的应用程序,请使用heroku git:clone -a myapp
。 Docs。
答案 3 :(得分:0)
在tamas7's answer上展开:
您可以从heroku服务器连接到计算机。
如果您的计算机位于路由器后面,则还需要将连接转发到计算机。
ssh
个连接在我的Mac上,就像在Preferences / Sharing
面板中启用它一样简单。
在浏览器中转到路由器的设置页面(通常为192.168.0.1
,但取决于路由器)。找到端口转发部分,然后在端口22
上将某些端口转发到您的计算机。
在这里,我确保将端口22000
转发到端口192.168.0.110
上的计算机(22
)。
只用谷歌“我的IP是什么”。
heroku run bash
scp -P 22000 your_user@your_external_IP:/path/to/your/file .
完成后,最好禁用端口转发和远程登录。
答案 4 :(得分:-1)
回答这个问题有点晚了,但是我使用localtunnel
-https://localtunnel.github.io/www/之类的服务将文件从本地计算机复制到heroku。
首先,在文件所在的目录中运行python HTTP服务器。
cd /path/to/file
python3 -m http.server
这将在端口8000中启动服务器。将localtunnel配置为连接到该端口。
lt -s mylocal -p 8000
现在,您可以从heroku机器上通过curl获取文件。
curl -XGET http://mylocal.localtunnel.me/myfile.txt > myfile.txt